[Checkins] SVN: zc.buildout/trunk/ Bug fixed:
Jim Fulton
jim at zope.com
Fri Aug 28 14:53:28 EDT 2009
Log message for revision 103351:
Bug fixed:
Option incrementing and decrementing didn't work for options
specified on the command line.
Changed:
U zc.buildout/trunk/CHANGES.txt
U zc.buildout/trunk/src/zc/buildout/buildout.py
U zc.buildout/trunk/src/zc/buildout/tests.py
-=-
Modified: zc.buildout/trunk/CHANGES.txt
===================================================================
--- zc.buildout/trunk/CHANGES.txt 2009-08-28 18:44:36 UTC (rev 103350)
+++ zc.buildout/trunk/CHANGES.txt 2009-08-28 18:53:27 UTC (rev 103351)
@@ -14,6 +14,9 @@
didn't work in the buildout section.
https://bugs.launchpad.net/zc.buildout/+bug/420463
+- Option incrementing and decrementing didn't work for options
+ specified on the command line.
+
1.4.0 (2009-08-26)
==================
Modified: zc.buildout/trunk/src/zc/buildout/buildout.py
===================================================================
--- zc.buildout/trunk/src/zc/buildout/buildout.py 2009-08-28 18:44:36 UTC (rev 103350)
+++ zc.buildout/trunk/src/zc/buildout/buildout.py 2009-08-28 18:53:27 UTC (rev 103351)
@@ -14,32 +14,31 @@
"""Buildout main script
"""
+from rmtree import rmtree
+try:
+ from hashlib import md5
+except ImportError:
+ # Python 2.4 and older
+ from md5 import md5
+
+import ConfigParser
+import copy
import distutils.errors
+import glob
+import itertools
import logging
import os
+import pkg_resources
import re
import shutil
import sys
import tempfile
-import ConfigParser
import UserDict
-import glob
-import copy
-
-
-import pkg_resources
import zc.buildout
import zc.buildout.download
import zc.buildout.easy_install
-from rmtree import rmtree
-try:
- from hashlib import md5
-except ImportError:
- # Python 2.4 and older
- from md5 import md5
-
realpath = zc.buildout.easy_install.realpath
pkg_resources_loc = pkg_resources.working_set.find(
@@ -160,10 +159,15 @@
else:
base = None
- override = dict((option, (value, 'COMMAND_LINE_VALUE'))
- for section, option, value in cloptions
- if section == 'buildout')
+ cloptions = dict(
+ (section, dict((option, (value, 'COMMAND_LINE_VALUE'))
+ for (_, option, value) in v))
+ for (section, v) in itertools.groupby(sorted(cloptions),
+ lambda v: v[0])
+ )
+ override = cloptions.get('buildout', {}).copy()
+
# load user defaults, which override defaults
if user_defaults:
user_config = os.path.join(os.path.expanduser('~'),
@@ -178,11 +182,7 @@
data['buildout'].copy(), override))
# apply command-line options
- for (section, option, value) in cloptions:
- options = data.get(section)
- if options is None:
- options = data[section] = {}
- options[option] = value, "COMMAND_LINE_VALUE"
+ _update(data, cloptions)
self._annotated = copy.deepcopy(data)
self._raw = _unannotate(data)
Modified: zc.buildout/trunk/src/zc/buildout/tests.py
===================================================================
--- zc.buildout/trunk/src/zc/buildout/tests.py 2009-08-28 18:44:36 UTC (rev 103350)
+++ zc.buildout/trunk/src/zc/buildout/tests.py 2009-08-28 18:53:27 UTC (rev 103351)
@@ -11,11 +11,6 @@
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
-"""XXX short summary goes here.
-
-$Id$
-"""
-
from zope.testing import doctest
from zope.testing import renormalizing
import os
@@ -2591,7 +2586,31 @@
recipe='zc.buildout:debug'
"""
+def increment_on_command_line():
+ r"""
+ >>> write('buildout.cfg', '''
+ ... [buildout]
+ ... parts = p1
+ ... x = 1
+ ... y = a
+ ... b
+ ...
+ ... [p1]
+ ... recipe = zc.buildout:debug
+ ... foo = ${buildout:x} ${buildout:y}
+ ...
+ ... [p2]
+ ... <= p1
+ ... ''')
+ >>> print system(buildout+' buildout:parts+=p2 p1:foo+=bar'),
+ Installing p1.
+ foo='1 a\nb\nbar'
+ recipe='zc.buildout:debug'
+ Installing p2.
+ foo='1 a\nb\nbar'
+ recipe='zc.buildout:debug'
+ """
######################################################################
More information about the checkins
mailing list