diff options
Diffstat (limited to 'src/engine/SCons/BuilderTests.py')
-rw-r--r-- | src/engine/SCons/BuilderTests.py | 44 |
1 files changed, 37 insertions, 7 deletions
diff --git a/src/engine/SCons/BuilderTests.py b/src/engine/SCons/BuilderTests.py index 965df6e1..d2e5768c 100644 --- a/src/engine/SCons/BuilderTests.py +++ b/src/engine/SCons/BuilderTests.py @@ -80,16 +80,16 @@ class BuilderTestCase(unittest.TestCase): one is an internal Python function, one is a list containing one of each. """ + cmd1 = "python %s %s xyzzy" % (act_py, outfile) + builder = SCons.Builder.Builder(action = cmd1) r = builder.execute() assert r == 0 assert test.read(outfile, 'r') == "act.py: xyzzy\n" def function1(kw): - f = open(kw['out'], 'w') - f.write("function1\n") - f.close() + open(kw['out'], 'w').write("function1\n") return 1 builder = SCons.Builder.Builder(action = function1) @@ -97,14 +97,44 @@ class BuilderTestCase(unittest.TestCase): assert r == 1 assert test.read(outfile, 'r') == "function1\n" + class class1a: + def __init__(self, kw): + open(kw['out'], 'w').write("class1a\n") + + builder = SCons.Builder.Builder(action = class1a) + r = builder.execute(out = outfile) + assert r.__class__ == class1a + assert test.read(outfile, 'r') == "class1a\n" + + class class1b: + def __call__(self, kw): + open(kw['out'], 'w').write("class1b\n") + return 2 + + builder = SCons.Builder.Builder(action = class1b()) + r = builder.execute(out = outfile) + assert r == 2 + assert test.read(outfile, 'r') == "class1b\n" + cmd2 = "python %s %s syzygy" % (act_py, outfile) + def function2(kw): open(kw['out'], 'a').write("function2\n") - return 2 - builder = SCons.Builder.Builder(action = [cmd2, function2]) + return 0 + + class class2a: + def __call__(self, kw): + open(kw['out'], 'a').write("class2a\n") + return 0 + + class class2b: + def __init__(self, kw): + open(kw['out'], 'a').write("class2b\n") + + builder = SCons.Builder.Builder(action = [cmd2, function2, class2a(), class2b]) r = builder.execute(out = outfile) - assert r == 2 - assert test.read(outfile, 'r') == "act.py: syzygy\nfunction2\n" + assert r.__class__ == class2b + assert test.read(outfile, 'r') == "act.py: syzygy\nfunction2\nclass2a\nclass2b\n" def test_insuffix(self): """Test Builder creation with a specified input suffix |