OpenSecurity/install/web.py-0.37/web/test.py
changeset 3 65432e6c6042
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/OpenSecurity/install/web.py-0.37/web/test.py	Mon Dec 02 14:02:05 2013 +0100
     1.3 @@ -0,0 +1,51 @@
     1.4 +"""test utilities
     1.5 +(part of web.py)
     1.6 +"""
     1.7 +import unittest
     1.8 +import sys, os
     1.9 +import web
    1.10 +
    1.11 +TestCase = unittest.TestCase
    1.12 +TestSuite = unittest.TestSuite
    1.13 +
    1.14 +def load_modules(names):
    1.15 +    return [__import__(name, None, None, "x") for name in names]
    1.16 +
    1.17 +def module_suite(module, classnames=None):
    1.18 +    """Makes a suite from a module."""
    1.19 +    if classnames:
    1.20 +        return unittest.TestLoader().loadTestsFromNames(classnames, module)
    1.21 +    elif hasattr(module, 'suite'):
    1.22 +        return module.suite()
    1.23 +    else:
    1.24 +        return unittest.TestLoader().loadTestsFromModule(module)
    1.25 +
    1.26 +def doctest_suite(module_names):
    1.27 +    """Makes a test suite from doctests."""
    1.28 +    import doctest
    1.29 +    suite = TestSuite()
    1.30 +    for mod in load_modules(module_names):
    1.31 +        suite.addTest(doctest.DocTestSuite(mod))
    1.32 +    return suite
    1.33 +    
    1.34 +def suite(module_names):
    1.35 +    """Creates a suite from multiple modules."""
    1.36 +    suite = TestSuite()
    1.37 +    for mod in load_modules(module_names):
    1.38 +        suite.addTest(module_suite(mod))
    1.39 +    return suite
    1.40 +
    1.41 +def runTests(suite):
    1.42 +    runner = unittest.TextTestRunner()
    1.43 +    return runner.run(suite)
    1.44 +
    1.45 +def main(suite=None):
    1.46 +    if not suite:
    1.47 +        main_module = __import__('__main__')
    1.48 +        # allow command line switches
    1.49 +        args = [a for a in sys.argv[1:] if not a.startswith('-')]
    1.50 +        suite = module_suite(main_module, args or None)
    1.51 +
    1.52 +    result = runTests(suite)
    1.53 +    sys.exit(not result.wasSuccessful())
    1.54 +