diff --git a/CHANGES.txt b/CHANGES.txt index f15f06d6315f3c654fcf82dd31de7eb88cf065b0..0f2fabb25188e4bb285032eb5ba549311ab0fdfc 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -20,6 +20,10 @@ Feature Changes - Improved error reporting by showing which packages require other packages that can't be found or that cause version conflicts. +Bugs Fixed +---------- + +- 92891: bootstrap crashes with recipe option in buildout section. 1.0.0b23 (2007-03-19) ===================== diff --git a/src/zc/buildout/buildout.py b/src/zc/buildout/buildout.py index 26e9e7a52e6cfafe089e12fd5cf6fd01705556ae..334dd2ab2ec5f284d96ca708932cdc698c908809 100644 --- a/src/zc/buildout/buildout.py +++ b/src/zc/buildout/buildout.py @@ -797,6 +797,9 @@ class Options(UserDict.DictMixin): if '${' in v: self._dosub(k, v) + if self.name == 'buildout': + return # buildout section can never be a part + recipe = self.get('recipe') if not recipe: return diff --git a/src/zc/buildout/tests.py b/src/zc/buildout/tests.py index b90f1bd62234731a0bee9b7808616a6b90de5c4c..af90ef09bd3167660fc503f461f8a5f076195ab0 100644 --- a/src/zc/buildout/tests.py +++ b/src/zc/buildout/tests.py @@ -796,6 +796,37 @@ bootstrapping. zc.buildout.easy_install: Generated script /sample-bootstrap/bin/buildout. """ + +def bug_92891_bootstrap_crashes_with_egg_recipe_in_buildout_section(): + """ + >>> d = tmpdir('sample-bootstrap') + + >>> write(d, 'buildout.cfg', + ... ''' + ... [buildout] + ... parts = buildout + ... eggs-directory = eggs + ... + ... [buildout] + ... recipe = zc.recipe.egg + ... eggs = zc.buildout + ... scripts = buildout=buildout + ... ''') + + >>> os.chdir(d) + >>> print system(os.path.join(sample_buildout, 'bin', 'buildout') + ... + ' bootstrap'), + buildout: Creating directory /sample-bootstrap/bin + buildout: Creating directory /sample-bootstrap/parts + buildout: Creating directory /sample-bootstrap/eggs + buildout: Creating directory /sample-bootstrap/develop-eggs + zc.buildout.easy_install: Generated script /sample-bootstrap/bin/buildout. + + >>> print system(os.path.join('bin', 'buildout')), + buildout: Unused options for buildout: 'scripts' 'eggs' + + """ + def removing_eggs_from_develop_section_causes_egg_link_to_be_removed(): ''' >>> cd(sample_buildout)