root/galaxy-central/eggs/GeneTrack-2.0.0_beta_1_dev_48da9e998f0caf01c5be731e926f4b0481f658f0-py2.6.egg/tests/testlib/unittest_extensions.py

リビジョン 3, 2.4 KB (コミッタ: kohda, 14 年 前)

Install Unix tools  http://hannonlab.cshl.edu/galaxy_unix_tools/galaxy.html

行番号 
1"""
2Provide support for test skipping.
3
4Based on work by Titus Brown in pygr
5"""
6
7import unittest, time
8import pathfix
9from genetrack import logger
10
11class SkipTest(Exception):
12    pass
13
14class TestResult(unittest._TextTestResult):
15
16    def __init__(self, *args, **kwargs):
17        unittest._TextTestResult.__init__(self, *args, **kwargs)
18        self.skipped = []
19       
20    def addError(self, test, err):
21        exc_type, val, _ = err
22        if issubclass(exc_type, SkipTest):
23            self.skipped.append((self, val))
24            if self.showAll:                         
25                # report skips: SKIP/S
26                self.stream.writeln("SKIP")
27            elif self.dots:
28                self.stream.write('S')
29        else:
30            unittest._TextTestResult.addError(self, test, err)
31
32class TestRunner(unittest.TextTestRunner):
33    """
34    Support running tests that understand SkipTest.
35    """
36    def _makeResult(self):
37        return TestResult(self.stream, self.descriptions,
38                              self.verbosity)
39
40    def run(self, test):
41        "Run the given test case or test suite."
42        result = self._makeResult()
43        startTime = time.time()
44        test(result)
45        stopTime = time.time()
46        timeTaken = stopTime - startTime
47        result.printErrors()
48        #self.stream.writeln(result.separator2)
49        run = result.testsRun
50
51        if self.verbosity>0:
52            self.stream.writeln("Ran %d test%s in %.3fs" %
53                               (run, run != 1 and "s" or "", timeTaken))
54            self.stream.writeln()
55
56        if not result.wasSuccessful():
57            self.stream.write("FAILED (")
58            failed, errored = map(len, (result.failures, result.errors))
59            if failed:
60                self.stream.write("failures=%d" % failed)
61            if errored:
62                if failed: self.stream.write(", ")
63                self.stream.write("errors=%d" % errored)
64            self.stream.writeln(")")
65        else:
66            #self.stream.writeln("OK")
67            pass
68        return result
69
70class TestProgram(unittest.TestProgram):
71   
72    def __init__(self, **kwargs):
73        verbosity = kwargs.pop('verbosity', 1)
74        if verbosity != 2:
75            logger.disable('DEBUG')
76        if kwargs.get('testRunner') is None:
77            kwargs['testRunner'] = TestRunner(verbosity=verbosity)
78
79        unittest.TestProgram.__init__(self, **kwargs)
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。