summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Node
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2001-10-12 19:31:00 (GMT)
committerSteven Knight <knight@baldmt.com>2001-10-12 19:31:00 (GMT)
commit2d4ea0988d82d1134cebd5bbc8a4f7a3fcbb8f2f (patch)
treee7e49a06a892c365dd30ae49b8ec4ab4b08f32ab /src/engine/SCons/Node
parent0b9500662af3d026632d59da69020947fe844f30 (diff)
downloadSCons-2d4ea0988d82d1134cebd5bbc8a4f7a3fcbb8f2f.zip
SCons-2d4ea0988d82d1134cebd5bbc8a4f7a3fcbb8f2f.tar.gz
SCons-2d4ea0988d82d1134cebd5bbc8a4f7a3fcbb8f2f.tar.bz2
Add tests and support for and .
Diffstat (limited to 'src/engine/SCons/Node')
-rw-r--r--src/engine/SCons/Node/NodeTests.py4
-rw-r--r--src/engine/SCons/Node/__init__.py10
2 files changed, 11 insertions, 3 deletions
diff --git a/src/engine/SCons/Node/NodeTests.py b/src/engine/SCons/Node/NodeTests.py
index febb95a..017b7f2 100644
--- a/src/engine/SCons/Node/NodeTests.py
+++ b/src/engine/SCons/Node/NodeTests.py
@@ -132,6 +132,8 @@ class NodeTestCase(unittest.TestCase):
assert node.depends == ['one']
node.add_dependency(['two', 'three'])
assert node.depends == ['one', 'two', 'three']
+ node.add_dependency(['three', 'four', 'one'])
+ assert node.depends == ['one', 'two', 'three', 'four']
def test_add_source(self):
"""Test adding sources to a Node's list.
@@ -146,6 +148,8 @@ class NodeTestCase(unittest.TestCase):
assert node.sources == ['one']
node.add_source(['two', 'three'])
assert node.sources == ['one', 'two', 'three']
+ node.add_source(['three', 'four', 'one'])
+ assert node.sources == ['one', 'two', 'three', 'four']
def test_children(self):
"""Test fetching the "children" of a Node.
diff --git a/src/engine/SCons/Node/__init__.py b/src/engine/SCons/Node/__init__.py
index c0346cc..8334d2d 100644
--- a/src/engine/SCons/Node/__init__.py
+++ b/src/engine/SCons/Node/__init__.py
@@ -59,7 +59,7 @@ class Node:
if not hasattr(self, "builder"):
return None
sources_str = string.join(map(lambda x: str(x), self.sources))
- stat = self.builder.execute(ENV = self.env.Dictionary('ENV'),
+ stat = self.builder.execute(env = self.env.Dictionary(),
target = str(self), source = sources_str)
if stat != 0:
raise BuildError(node = self, stat = stat)
@@ -84,13 +84,17 @@ class Node:
"""Adds dependencies. The depends argument must be a list."""
if type(depend) is not type([]):
raise TypeError("depend must be a list")
- self.depends.extend(depend)
+ depend = filter(lambda x, d=self.depends: x not in d, depend)
+ if len(depend):
+ self.depends.extend(depend)
def add_source(self, source):
"""Adds sources. The source argument must be a list."""
if type(source) is not type([]):
raise TypeError("source must be a list")
- self.sources.extend(source)
+ source = filter(lambda x, s=self.sources: x not in s, source)
+ if len(source):
+ self.sources.extend(source)
def children(self):
return self.sources + self.depends