summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Node/NodeTests.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/SCons/Node/NodeTests.py')
-rw-r--r--src/engine/SCons/Node/NodeTests.py86
1 files changed, 12 insertions, 74 deletions
diff --git a/src/engine/SCons/Node/NodeTests.py b/src/engine/SCons/Node/NodeTests.py
index 4054bb9..abfbe1c 100644
--- a/src/engine/SCons/Node/NodeTests.py
+++ b/src/engine/SCons/Node/NodeTests.py
@@ -38,7 +38,7 @@ built_target = None
built_source = None
cycle_detected = None
-class Builder:
+class MyAction:
def execute(self, target, source, env):
global built_it, built_target, built_source, built_args
built_it = 1
@@ -46,8 +46,12 @@ class Builder:
built_source = source
built_args = env
return 0
+
+class Builder:
+ def targets(self, t):
+ return [t]
def get_actions(self):
- return 'xyzzy'
+ return [MyAction()]
def get_contents(self, target, source, env):
return 7
@@ -89,58 +93,14 @@ class Environment:
class NodeTestCase(unittest.TestCase):
- def test_BuildException(self):
- """Test throwing an exception on build failure.
- """
- node = SCons.Node.Node()
- node.builder_set(FailBuilder())
- node.env_set(Environment())
- try:
- node.build()
- except SCons.Errors.BuildError:
- pass
- else:
- raise TestFailed, "did not catch expected BuildError"
-
- node = SCons.Node.Node()
- node.builder_set(ExceptBuilder())
- node.env_set(Environment())
- try:
- node.build()
- except SCons.Errors.BuildError:
- pass
- else:
- raise TestFailed, "did not catch expected BuildError"
-
- node = SCons.Node.Node()
- node.builder_set(ExceptBuilder2())
- node.env_set(Environment())
- try:
- node.build()
- except SCons.Errors.BuildError, e:
- # On a generic (non-BuildError) exception from a Builder,
- # the Node should throw a BuildError exception with
- # the args set to the exception value, type, and traceback.
- assert len(e.args) == 3, `e.args`
- assert e.args[0] == 'foo', e.args[0]
- assert e.args[1] is None
- assert type(e.args[2]) is type(sys.exc_traceback), e.args[2]
- else:
- raise TestFailed, "did not catch expected BuildError"
-
def test_build(self):
"""Test building a node
"""
global built_it
class MyNode(SCons.Node.Node):
- def __init__(self, **kw):
- apply(SCons.Node.Node.__init__, (self,), kw)
- self.prepare_count = 0
def __str__(self):
return self.path
- def prepare(self):
- self.prepare_count = self.prepare_count+ 1
# Make sure it doesn't blow up if no builder is set.
node = MyNode()
node.build()
@@ -153,8 +113,8 @@ class NodeTestCase(unittest.TestCase):
node.sources = ["yyy", "zzz"]
node.build()
assert built_it
- assert type(built_target) == type(MyNode()), type(built_target)
- assert str(built_target) == "xxx", str(built_target)
+ assert type(built_target[0]) == type(MyNode()), type(built_target[0])
+ assert str(built_target[0]) == "xxx", str(built_target[0])
assert built_source == ["yyy", "zzz"], built_source
built_it = None
@@ -166,8 +126,8 @@ class NodeTestCase(unittest.TestCase):
node.overrides = { "foo" : 1, "bar" : 2 }
node.build()
assert built_it
- assert type(built_target) == type(MyNode()), type(built_target)
- assert str(built_target) == "qqq", str(built_target)
+ assert type(built_target[0]) == type(MyNode()), type(built_target[0])
+ assert str(built_target[0]) == "qqq", str(built_target[0])
assert built_source == ["rrr", "sss"], built_source
assert built_args["foo"] == 1, built_args
assert built_args["bar"] == 2, built_args
@@ -185,28 +145,6 @@ class NodeTestCase(unittest.TestCase):
fff.sources = ["hhh", "iii"]
ggg.sources = ["hhh", "iii"]
- built_it = None
- fff.build()
- assert built_it
- ggg.build()
- assert ggg.prepare_count== 1, ggg.prepare_count
- assert type(built_target) == type(MyNode()), type(built_target)
- assert str(built_target) == "fff", str(built_target)
- assert built_source == ["hhh", "iii"], built_source
-
- delattr(lb, 'status')
- fff.prepare_count = 0
- ggg.prepare_count = 0
-
- built_it = None
- ggg.build()
- #assert built_it
- fff.build()
- assert fff.prepare_count== 1, fff.prepare_count
- assert type(built_target) == type(MyNode()), type(built_target)
- assert str(built_target) == "fff", str(built_target)
- assert built_source == ["hhh", "iii"], built_source
-
def test_depends_on(self):
parent = SCons.Node.Node()
child = SCons.Node.Node()
@@ -249,8 +187,8 @@ class NodeTestCase(unittest.TestCase):
"""
node = SCons.Node.Node()
node.builder_set(Builder())
- a = node.get_actions()
- assert a == 'xyzzy', a
+ a = node.builder.get_actions()
+ assert isinstance(a[0], MyAction), a[0]
def test_set_bsig(self):
"""Test setting a Node's signature