OpenSecurity/install/web.py-0.37/build/lib/web/test.py
author om
Mon, 02 Dec 2013 14:02:05 +0100
changeset 3 65432e6c6042
permissions -rwxr-xr-x
initial deployment and project layout commit
     1 """test utilities
     2 (part of web.py)
     3 """
     4 import unittest
     5 import sys, os
     6 import web
     7 
     8 TestCase = unittest.TestCase
     9 TestSuite = unittest.TestSuite
    10 
    11 def load_modules(names):
    12     return [__import__(name, None, None, "x") for name in names]
    13 
    14 def module_suite(module, classnames=None):
    15     """Makes a suite from a module."""
    16     if classnames:
    17         return unittest.TestLoader().loadTestsFromNames(classnames, module)
    18     elif hasattr(module, 'suite'):
    19         return module.suite()
    20     else:
    21         return unittest.TestLoader().loadTestsFromModule(module)
    22 
    23 def doctest_suite(module_names):
    24     """Makes a test suite from doctests."""
    25     import doctest
    26     suite = TestSuite()
    27     for mod in load_modules(module_names):
    28         suite.addTest(doctest.DocTestSuite(mod))
    29     return suite
    30     
    31 def suite(module_names):
    32     """Creates a suite from multiple modules."""
    33     suite = TestSuite()
    34     for mod in load_modules(module_names):
    35         suite.addTest(module_suite(mod))
    36     return suite
    37 
    38 def runTests(suite):
    39     runner = unittest.TextTestRunner()
    40     return runner.run(suite)
    41 
    42 def main(suite=None):
    43     if not suite:
    44         main_module = __import__('__main__')
    45         # allow command line switches
    46         args = [a for a in sys.argv[1:] if not a.startswith('-')]
    47         suite = module_suite(main_module, args or None)
    48 
    49     result = runTests(suite)
    50     sys.exit(not result.wasSuccessful())
    51