diff options
| author | Steven Knight <knight@baldmt.com> | 2002-12-17 14:01:28 (GMT) |
|---|---|---|
| committer | Steven Knight <knight@baldmt.com> | 2002-12-17 14:01:28 (GMT) |
| commit | 72d46ff0afa7d688a2029a74b0a0084dcf439ba5 (patch) | |
| tree | 82bd4d7ac5f2ad43b3624e4bd51755cf2bd85e4c /src/engine/SCons/Node | |
| parent | 1f839d9933b456ba4ebb5098ce1f9ab01f398a94 (diff) | |
| download | SCons-72d46ff0afa7d688a2029a74b0a0084dcf439ba5.zip SCons-72d46ff0afa7d688a2029a74b0a0084dcf439ba5.tar.gz SCons-72d46ff0afa7d688a2029a74b0a0084dcf439ba5.tar.bz2 | |
Refactor action execution so it's controlled by the interface-specific Taskmaster.Task class, not Node.build().
Diffstat (limited to 'src/engine/SCons/Node')
| -rw-r--r-- | src/engine/SCons/Node/FS.py | 4 | ||||
| -rw-r--r-- | src/engine/SCons/Node/FSTests.py | 10 | ||||
| -rw-r--r-- | src/engine/SCons/Node/NodeTests.py | 10 | ||||
| -rw-r--r-- | src/engine/SCons/Node/__init__.py | 4 |
4 files changed, 28 insertions, 0 deletions
diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py index a3ac7be..4ed4664 100644 --- a/src/engine/SCons/Node/FS.py +++ b/src/engine/SCons/Node/FS.py @@ -659,6 +659,10 @@ class Dir(Entry): kids.sort(c) return kids + SCons.Node.Node.all_children(self, 0) + def get_actions(self): + """A null "builder" for directories.""" + return [] + def build(self): """A null "builder" for directories.""" pass diff --git a/src/engine/SCons/Node/FSTests.py b/src/engine/SCons/Node/FSTests.py index 8386f83..5917044 100644 --- a/src/engine/SCons/Node/FSTests.py +++ b/src/engine/SCons/Node/FSTests.py @@ -944,6 +944,15 @@ class prepareTestCase(unittest.TestCase): exc_caught = 1 assert exc_caught, "Should have caught a StopError." +class get_actionsTestCase(unittest.TestCase): + def runTest(self): + """Test the Dir's get_action() method""" + + fs = SCons.Node.FS.FS() + dir = fs.Dir('.') + a = dir.get_actions() + assert a == [], a + if __name__ == "__main__": suite = unittest.TestSuite() @@ -953,5 +962,6 @@ if __name__ == "__main__": suite.addTest(find_fileTestCase()) suite.addTest(StringDirTestCase()) suite.addTest(prepareTestCase()) + suite.addTest(get_actionsTestCase()) if not unittest.TextTestRunner().run(suite).wasSuccessful(): sys.exit(1) diff --git a/src/engine/SCons/Node/NodeTests.py b/src/engine/SCons/Node/NodeTests.py index cd2d2e3..4054bb9 100644 --- a/src/engine/SCons/Node/NodeTests.py +++ b/src/engine/SCons/Node/NodeTests.py @@ -46,6 +46,8 @@ class Builder: built_source = source built_args = env return 0 + def get_actions(self): + return 'xyzzy' def get_contents(self, target, source, env): return 7 @@ -242,6 +244,14 @@ class NodeTestCase(unittest.TestCase): node.env_set(e) assert node.env == e + def test_get_actions(self): + """Test fetching a Node's action list + """ + node = SCons.Node.Node() + node.builder_set(Builder()) + a = node.get_actions() + assert a == 'xyzzy', a + def test_set_bsig(self): """Test setting a Node's signature """ diff --git a/src/engine/SCons/Node/__init__.py b/src/engine/SCons/Node/__init__.py index 2033663..82dfd7e 100644 --- a/src/engine/SCons/Node/__init__.py +++ b/src/engine/SCons/Node/__init__.py @@ -110,6 +110,10 @@ class Node: def generate_build_env(self): return self.env.Override(self.overrides) + def get_actions(self): + """Fetch the action list to build.""" + return self.builder.get_actions() + def build(self): """Actually build the node. Return the status from the build.""" # This method is called from multiple threads in a parallel build, |
