⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test

📁 Python的一个ORM,现在很火
💻
字号:
#!/usr/bin/env python## Copyright (c) 2006, 2007 Canonical## Written by Gustavo Niemeyer <gustavo@niemeyer.net>## This file is part of Storm Object Relational Mapper.## Storm is free software; you can redistribute it and/or modify# it under the terms of the GNU Lesser General Public License as# published by the Free Software Foundation; either version 2.1 of# the License, or (at your option) any later version.## Storm is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the# GNU Lesser General Public License for more details.## You should have received a copy of the GNU Lesser General Public License# along with this program.  If not, see <http://www.gnu.org/licenses/>.#import optparseimport unittestimport doctestimport newimport sysimport osimport testsdef disable_conftest():    """Install an empty module on py.test's tests.conftest    When other runners are stepping by the suite of tests, they shouldn't    find the py.test specific conftest.py file.    """    conftest = new.module("conftest")    conftest.__file__ = "tests/conftest.py"    sys.modules["tests.conftest"] = tests.conftest = conftestdef test_with_trial():    from twisted.scripts import trial    disable_conftest()    if not [x for x in sys.argv[1:] if not x.startswith("-")]:        for dir, dirs, files in os.walk('tests'):            for file in files:                if file.endswith('.py'):                    sys.argv.append(os.path.join(dir, file))    trial.run()def test_with_py_test():    import py    dirname = os.path.dirname(__file__)    if not [x for x in sys.argv[1:] if not x.startswith("-")]:        tests_dir = os.path.join(dirname, "tests/")        # For timestamp checking when looping:        storm_dir = os.path.join(dirname, "storm/")        sys.argv.extend([tests_dir, storm_dir])    py.test.cmdline.main()def test_with_unittest():    usage = "test.py [options] [<test filename>, ...]"    parser = optparse.OptionParser(usage=usage)    parser.add_option('--verbose', action='store_true')    opts, args = parser.parse_args()    opts.args = args    disable_conftest()    runner = unittest.TextTestRunner()    if opts.verbose:        runner.verbosity = 2            loader = unittest.TestLoader()    topdir = os.path.abspath(os.path.dirname(__file__))    testdir = os.path.dirname(tests.__file__)    doctest_flags = doctest.ELLIPSIS    unittests = []    doctests = []    for root, dirnames, filenames in os.walk(testdir):        for filename in filenames:            filepath = os.path.join(root, filename)            relpath = filepath[len(topdir)+1:]            if (filename == "__init__.py" or filename.endswith(".pyc") or                opts.args and relpath not in opts.args):                pass            elif filename.endswith(".py"):                unittests.append(relpath)            elif filename.endswith(".txt"):                doctests.append(relpath)    class Summary:        def __init__(self):            self.total_failures = 0            self.total_errors = 0            self.total_tests = 0        def __call__(self, tests, failures, errors):            self.total_tests += tests            self.total_failures += failures            self.total_errors += errors            print "(tests=%d, failures=%d, errors=%d)" % \                  (tests, failures, errors)    unittest_summary = Summary()    doctest_summary = Summary()    if unittests:        print "Running unittests..."        for relpath in unittests:            print "[%s]" % relpath            modpath = relpath.replace('/', '.')[:-3]            module = __import__(modpath, None, None, [""])            test = loader.loadTestsFromModule(module)            result = runner.run(test)            unittest_summary(test.countTestCases(),                             len(result.failures), len(result.errors))            print    if doctests:        print "Running doctests..."        for relpath in doctests:            print "[%s]" % relpath            failures, total = doctest.testfile(relpath,                                               optionflags=doctest_flags)            doctest_summary(total, failures, 0)            print    print "Total test cases: %d" % unittest_summary.total_tests    print "Total doctests: %d" % doctest_summary.total_tests    print "Total failures: %d" % (unittest_summary.total_failures +                                  doctest_summary.total_failures)    print "Total errors: %d" % (unittest_summary.total_errors +                                doctest_summary.total_errors)    failed = bool(unittest_summary.total_failures or                  unittest_summary.total_errors or                  doctest_summary.total_failures or                  doctest_summary.total_errors)    sys.exit(failed)if __name__ == "__main__":    runner = os.environ.get("STORM_TEST_RUNNER")    if not runner:        runner = "unittest"    runner_func = globals().get("test_with_%s" % runner.replace(".", "_"))    if not runner_func:        sys.exit("Test runner not found: %s" % runner)    runner_func()# vim:ts=4:sw=4:et

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -