diff options
author | Steven Knight <knight@baldmt.com> | 2004-11-12 01:36:40 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2004-11-12 01:36:40 (GMT) |
commit | 206adf4366654b0c3fcf8c9131140f0c11ae0a5f (patch) | |
tree | b9af8957741845e092043c9b4c264da3a4d1547b /src/engine/SCons/Node/NodeTests.py | |
parent | 0c6d3c5f5d2630b8be6fa7c915c515d77120c6a4 (diff) | |
download | SCons-206adf4366654b0c3fcf8c9131140f0c11ae0a5f.zip SCons-206adf4366654b0c3fcf8c9131140f0c11ae0a5f.tar.gz SCons-206adf4366654b0c3fcf8c9131140f0c11ae0a5f.tar.bz2 |
On Python 2.x, return lists of Nodes from builders as a NodeList object with a defined __str__ method().
Diffstat (limited to 'src/engine/SCons/Node/NodeTests.py')
-rw-r--r-- | src/engine/SCons/Node/NodeTests.py | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/src/engine/SCons/Node/NodeTests.py b/src/engine/SCons/Node/NodeTests.py index e7d3061..657ac9b 100644 --- a/src/engine/SCons/Node/NodeTests.py +++ b/src/engine/SCons/Node/NodeTests.py @@ -24,9 +24,12 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" import os +import re +import string import sys import types import unittest +import UserList import SCons.Errors import SCons.Node @@ -1118,9 +1121,39 @@ class NodeTestCase(unittest.TestCase): n1.call_for_all_waiting_parents(func) assert result == [n1, n2], result +class NodeListTestCase(unittest.TestCase): + def test___str__(self): + """Test""" + n1 = MyNode("n1") + n2 = MyNode("n2") + n3 = MyNode("n3") + nl = SCons.Node.NodeList([n3, n2, n1]) + + l = [1] + ul = UserList.UserList([2]) + try: + l.extend(ul) + except TypeError: + # An older version of Python (*cough* 1.5.2 *cough*) + # that doesn't allow UserList objects to extend lists. + pass + else: + s = str(nl) + assert s == "['n3', 'n2', 'n1']", s + + r = repr(nl) + r = re.sub('at (0x)?[0-9a-z]+', 'at 0x', repr(nl)) + l = string.join(["<__main__.MyNode instance at 0x>"]*3, ", ") + assert r == '[%s]' % l, r + if __name__ == "__main__": - suite = unittest.makeSuite(NodeTestCase, 'test_') + suite = unittest.TestSuite() + tclasses = [ NodeTestCase, + NodeListTestCase ] + for tclass in tclasses: + names = unittest.getTestCaseNames(tclass, 'test_') + suite.addTests(map(tclass, names)) if not unittest.TextTestRunner().run(suite).wasSuccessful(): sys.exit(1) |