diff options
author | Steven Knight <knight@baldmt.com> | 2004-08-21 14:32:17 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2004-08-21 14:32:17 (GMT) |
commit | 43e7e59dc3885411c1c58c9c26c7adbc0e191e0a (patch) | |
tree | 282f7a0ad4c51425a52e890eb1dc1cd153458ad8 /src/engine/SCons | |
parent | 6ec1c708ae25a616d3e32b5b654d896baf0369ac (diff) | |
download | SCons-43e7e59dc3885411c1c58c9c26c7adbc0e191e0a.zip SCons-43e7e59dc3885411c1c58c9c26c7adbc0e191e0a.tar.gz SCons-43e7e59dc3885411c1c58c9c26c7adbc0e191e0a.tar.bz2 |
Fix env.Copy() stack trace.
Diffstat (limited to 'src/engine/SCons')
-rw-r--r-- | src/engine/SCons/Options/ListOption.py | 4 | ||||
-rw-r--r-- | src/engine/SCons/Options/ListOptionTests.py | 11 | ||||
-rw-r--r-- | src/engine/SCons/Util.py | 6 |
3 files changed, 13 insertions, 8 deletions
diff --git a/src/engine/SCons/Options/ListOption.py b/src/engine/SCons/Options/ListOption.py index 20b7e99..eade374 100644 --- a/src/engine/SCons/Options/ListOption.py +++ b/src/engine/SCons/Options/ListOption.py @@ -59,7 +59,7 @@ import UserList class _ListOption(UserList.UserList): - def __init__(self, allowedElems, initlist): + def __init__(self, initlist=[], allowedElems=[]): UserList.UserList.__init__(self, filter(None, initlist)) self.allowedElems = allowedElems[:] self.allowedElems.sort() @@ -103,7 +103,7 @@ def _converter(val, allowedElems): if notAllowed: raise ValueError("Invalid value(s) for option: %s" % string.join(notAllowed, ',')) - return _ListOption(allowedElems, val) + return _ListOption(val, allowedElems) ## def _validator(key, val, env): diff --git a/src/engine/SCons/Options/ListOptionTests.py b/src/engine/SCons/Options/ListOptionTests.py index 2175720..0c7cc8e 100644 --- a/src/engine/SCons/Options/ListOptionTests.py +++ b/src/engine/SCons/Options/ListOptionTests.py @@ -23,6 +23,7 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" +import copy import sys import unittest @@ -94,6 +95,16 @@ class ListOptionTestCase(unittest.TestCase): caught = 1 assert caught, "did not catch expected ValueError" + def test_copy(self): + """Test copying a ListOption like an Environment would""" + opts = SCons.Options.Options() + opts.Add(SCons.Options.ListOption('test', 'test option help', 'all', + ['one', 'two', 'three'])) + + o = opts.options[0] + + l = o.converter('all') + n = l.__class__(copy.copy(l)) if __name__ == "__main__": suite = unittest.makeSuite(ListOptionTestCase, 'test_') diff --git a/src/engine/SCons/Util.py b/src/engine/SCons/Util.py index ea5d7f6..5636a90 100644 --- a/src/engine/SCons/Util.py +++ b/src/engine/SCons/Util.py @@ -231,9 +231,6 @@ class SpecialAttrWrapper: class CallableComposite(UserList.UserList): """A simple composite callable class that, when called, will invoke all of its contained callables with the same arguments.""" - def __init__(self, seq = []): - UserList.UserList.__init__(self, seq) - def __call__(self, *args, **kwargs): retvals = map(lambda x, args=args, kwargs=kwargs: apply(x, args, @@ -253,9 +250,6 @@ class NodeList(UserList.UserList): >>> someList.strip() [ 'foo', 'bar' ] """ - def __init__(self, seq = []): - UserList.UserList.__init__(self, seq) - def __nonzero__(self): return len(self.data) != 0 |