diff options
author | Steven Knight <knight@baldmt.com> | 2004-11-10 02:37:58 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2004-11-10 02:37:58 (GMT) |
commit | 0277e19ef2c747b4bb00233c172d407aeeb1eab8 (patch) | |
tree | 409d1eece3864aee5457c0a075d2f4e8d743deae | |
parent | 81262f1b830ceb37dbec4ff39790876b55f0d2f7 (diff) | |
download | SCons-0277e19ef2c747b4bb00233c172d407aeeb1eab8.zip SCons-0277e19ef2c747b4bb00233c172d407aeeb1eab8.tar.gz SCons-0277e19ef2c747b4bb00233c172d407aeeb1eab8.tar.bz2 |
Add a genstring() method to the ListAction class.
-rw-r--r-- | src/engine/SCons/Action.py | 6 | ||||
-rw-r--r-- | src/engine/SCons/ActionTests.py | 9 |
2 files changed, 11 insertions, 4 deletions
diff --git a/src/engine/SCons/Action.py b/src/engine/SCons/Action.py index 5f89cc2..3b62702 100644 --- a/src/engine/SCons/Action.py +++ b/src/engine/SCons/Action.py @@ -575,6 +575,12 @@ class ListAction(ActionBase): return Action(x) self.list = map(list_of_actions, list) + def genstring(self, target, source, env): + return string.join(map(lambda a, t=target, s=source, e=env: + a.genstring(t, s, e), + self.list), + '\n') + def __str__(self): return string.join(map(str, self.list), '\n') diff --git a/src/engine/SCons/ActionTests.py b/src/engine/SCons/ActionTests.py index e996f61..74812df 100644 --- a/src/engine/SCons/ActionTests.py +++ b/src/engine/SCons/ActionTests.py @@ -1408,11 +1408,12 @@ class ListActionTestCase(unittest.TestCase): """ def f(target,source,env): pass - def g(target,source,env): - pass + def g(target,source,env,for_signature): + return 'generated %s %s' % (target[0], source[0]) + g = SCons.Action.CommandGenerator(g) a = SCons.Action.ListAction([f, g, "XXX", f]) - s = a.genstring([], [], Environment()) - assert s == "f(target, source, env)\ng(target, source, env)\nXXX\nf(target, source, env)", s + s = a.genstring(['foo.x'], ['bar.y'], Environment()) + assert s == "f(target, source, env)\ngenerated foo.x bar.y\nXXX\nf(target, source, env)", s def test_execute(self): """Test executing a list of subsidiary Actions |