diff options
| author | Steven Knight <knight@baldmt.com> | 2001-10-12 19:31:00 (GMT) |
|---|---|---|
| committer | Steven Knight <knight@baldmt.com> | 2001-10-12 19:31:00 (GMT) |
| commit | 2d4ea0988d82d1134cebd5bbc8a4f7a3fcbb8f2f (patch) | |
| tree | e7e49a06a892c365dd30ae49b8ec4ab4b08f32ab /src/engine/SCons/Node | |
| parent | 0b9500662af3d026632d59da69020947fe844f30 (diff) | |
| download | SCons-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.py | 4 | ||||
| -rw-r--r-- | src/engine/SCons/Node/__init__.py | 10 |
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 |
