summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Scanner/ScannerTests.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2001-09-17 04:57:00 (GMT)
committerSteven Knight <knight@baldmt.com>2001-09-17 04:57:00 (GMT)
commit3c81bb2bd0e009c0ee81570e17b0f87ad8d034ab (patch)
tree1a08c189644909cdadc489cce0eaa487e2c6f578 /src/engine/SCons/Scanner/ScannerTests.py
parente2faf9c21bc7712fcdc547b7df0f12a6b2177601 (diff)
downloadSCons-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.py84
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)
+
+