diff options
| author | Steven Knight <knight@baldmt.com> | 2001-09-17 04:57:00 (GMT) |
|---|---|---|
| committer | Steven Knight <knight@baldmt.com> | 2001-09-17 04:57:00 (GMT) |
| commit | 3c81bb2bd0e009c0ee81570e17b0f87ad8d034ab (patch) | |
| tree | 1a08c189644909cdadc489cce0eaa487e2c6f578 /src/engine/SCons/Scanner/ScannerTests.py | |
| parent | e2faf9c21bc7712fcdc547b7df0f12a6b2177601 (diff) | |
| download | SCons-3c81bb2bd0e009c0ee81570e17b0f87ad8d034ab.zip SCons-3c81bb2bd0e009c0ee81570e17b0f87ad8d034ab.tar.gz SCons-3c81bb2bd0e009c0ee81570e17b0f87ad8d034ab.tar.bz2 | |
Run setup.py on the unpacked .tar.gz for testing.
Diffstat (limited to 'src/engine/SCons/Scanner/ScannerTests.py')
| -rw-r--r-- | src/engine/SCons/Scanner/ScannerTests.py | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/src/engine/SCons/Scanner/ScannerTests.py b/src/engine/SCons/Scanner/ScannerTests.py new file mode 100644 index 0000000..9c7163d --- /dev/null +++ b/src/engine/SCons/Scanner/ScannerTests.py @@ -0,0 +1,84 @@ +__revision__ = "Scanner/ScannerTests.py __REVISION__ __DATE__ __DEVELOPER__" + +import unittest +import SCons.Scanner +import sys + +class ScannerTestBase: + + def func(self, filename, env, *args): + self.filename = filename + self.env = env + + if len(args) > 0: + self.arg = args[0] + + return self.deps + + + def test(self, scanner, env, filename, deps, *args): + self.deps = deps + deps = scanner.scan(filename, env) + + self.failUnless(self.filename == filename, "the filename was passed incorrectly") + self.failUnless(self.env == env, "the environment was passed incorrectly") + self.failUnless(self.deps == deps, "the dependencies were returned incorrectly") + + if len(args) > 0: + self.failUnless(self.arg == args[0], "the argument was passed incorrectly") + else: + self.failIf(hasattr(self, "arg"), "an argument was given when it shouldn't have been") + +class DummyEnvironment: + pass + + +class ScannerPositionalTestCase(ScannerTestBase, unittest.TestCase): + "Test the Scanner class using the position argument" + def runTest(self): + s = SCons.Scanner.Scanner(self.func) + env = DummyEnvironment() + env.VARIABLE = "var1" + self.test(s, env, 'f1.cpp', ['f1.h', 'f1.hpp']) + +class ScannerKeywordTestCase(ScannerTestBase, unittest.TestCase): + "Test the Scanner class using the keyword argument" + def runTest(self): + s = SCons.Scanner.Scanner(function = self.func) + env = DummyEnvironment() + env.VARIABLE = "var2" + self.test(s, env, 'f2.cpp', ['f2.h', 'f2.hpp']) + +class ScannerPositionalArgumentTestCase(ScannerTestBase, unittest.TestCase): + "Test the Scanner class using the position argument and optional argument" + def runTest(self): + arg = "this is the argument" + s = SCons.Scanner.Scanner(self.func, arg) + env = DummyEnvironment() + env.VARIABLE = "var3" + self.test(s, env, 'f3.cpp', ['f3.h', 'f3.hpp'], arg) + +class ScannerKeywordArgumentTestCase(ScannerTestBase, unittest.TestCase): + "Test the Scanner class using the keyword argument and optional argument" + def runTest(self): + arg = "this is another argument" + s = SCons.Scanner.Scanner(function = self.func, argument = arg) + env = DummyEnvironment() + env.VARIABLE = "var4" + self.test(s, env, 'f4.cpp', ['f4.h', 'f4.hpp'], arg) + +def suite(): + suite = unittest.TestSuite() + suite.addTest(ScannerPositionalTestCase()) + suite.addTest(ScannerKeywordTestCase()) + suite.addTest(ScannerPositionalArgumentTestCase()) + suite.addTest(ScannerKeywordArgumentTestCase()) + return suite + +if __name__ == "__main__": + runner = unittest.TextTestRunner() + result = runner.run(suite()) + if not result.wasSuccessful(): + sys.exit(1) + + |
