summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Node/NodeTests.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2004-11-12 01:36:40 (GMT)
committerSteven Knight <knight@baldmt.com>2004-11-12 01:36:40 (GMT)
commit206adf4366654b0c3fcf8c9131140f0c11ae0a5f (patch)
treeb9af8957741845e092043c9b4c264da3a4d1547b /src/engine/SCons/Node/NodeTests.py
parent0c6d3c5f5d2630b8be6fa7c915c515d77120c6a4 (diff)
downloadSCons-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.py35
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)