diff options
author | Rogan Creswick <creswick@galois.com> | 2012-03-30 17:07:02 -0700 |
---|---|---|
committer | Rogan Creswick <creswick@galois.com> | 2012-03-30 17:07:02 -0700 |
commit | f6ab6622aab00fe7c2f4c3dc41f786ebbe0f0d73 (patch) | |
tree | 870111038542cd27153e1396ebdc063573249689 /tools/addon-sdk-1.4/python-lib/cuddlefish/tests/__init__.py |
initial revision
Diffstat (limited to 'tools/addon-sdk-1.4/python-lib/cuddlefish/tests/__init__.py')
-rw-r--r-- | tools/addon-sdk-1.4/python-lib/cuddlefish/tests/__init__.py | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/tools/addon-sdk-1.4/python-lib/cuddlefish/tests/__init__.py b/tools/addon-sdk-1.4/python-lib/cuddlefish/tests/__init__.py new file mode 100644 index 0000000..c0b34dc --- /dev/null +++ b/tools/addon-sdk-1.4/python-lib/cuddlefish/tests/__init__.py @@ -0,0 +1,61 @@ +import os +import unittest +import doctest +import glob + +env_root = os.environ['CUDDLEFISH_ROOT'] + +def get_tests(): + import cuddlefish + import cuddlefish.tests + + tests = [] + packages = [cuddlefish, cuddlefish.tests] + for package in packages: + path = os.path.abspath(package.__path__[0]) + pynames = glob.glob(os.path.join(path, '*.py')) + for filename in pynames: + basename = os.path.basename(filename) + module_name = os.path.splitext(basename)[0] + full_name = "%s.%s" % (package.__name__, module_name) + module = __import__(full_name, fromlist=[package.__name__]) + + loader = unittest.TestLoader() + suite = loader.loadTestsFromModule(module) + for test in suite: + tests.append(test) + + finder = doctest.DocTestFinder() + doctests = finder.find(module) + for test in doctests: + if len(test.examples) > 0: + tests.append(doctest.DocTestCase(test)) + + md_dir = os.path.join(env_root, 'dev-guide') + doctest_opts = (doctest.NORMALIZE_WHITESPACE | + doctest.REPORT_UDIFF) + for dirpath, dirnames, filenames in os.walk(md_dir): + for filename in filenames: + if filename.endswith('.md'): + absname = os.path.join(dirpath, filename) + tests.append(doctest.DocFileTest( + absname, + module_relative=False, + optionflags=doctest_opts + )) + + return tests + +def run(verbose=False): + if verbose: + verbosity = 2 + else: + verbosity = 1 + + tests = get_tests() + suite = unittest.TestSuite(tests) + runner = unittest.TextTestRunner(verbosity=verbosity) + return runner.run(suite) + +if __name__ == '__main__': + run() |