Index: Tools/Scripts/webkitpy/thirdparty/unittest2/main.py |
diff --git a/Tools/Scripts/webkitpy/thirdparty/unittest2/main.py b/Tools/Scripts/webkitpy/thirdparty/unittest2/main.py |
deleted file mode 100644 |
index 5e3cc968e9d9756eaebc8c2375643832471d093d..0000000000000000000000000000000000000000 |
--- a/Tools/Scripts/webkitpy/thirdparty/unittest2/main.py |
+++ /dev/null |
@@ -1,241 +0,0 @@ |
-"""Unittest main program""" |
- |
-import sys |
-import os |
-import types |
- |
-from unittest2 import loader, runner |
-try: |
- from unittest2.signals import installHandler |
-except ImportError: |
- installHandler = None |
- |
-__unittest = True |
- |
-FAILFAST = " -f, --failfast Stop on first failure\n" |
-CATCHBREAK = " -c, --catch Catch control-C and display results\n" |
-BUFFEROUTPUT = " -b, --buffer Buffer stdout and stderr during test runs\n" |
- |
-USAGE_AS_MAIN = """\ |
-Usage: %(progName)s [options] [tests] |
- |
-Options: |
- -h, --help Show this message |
- -v, --verbose Verbose output |
- -q, --quiet Minimal output |
-%(failfast)s%(catchbreak)s%(buffer)s |
-Examples: |
- %(progName)s test_module - run tests from test_module |
- %(progName)s test_module.TestClass - run tests from |
- test_module.TestClass |
- %(progName)s test_module.TestClass.test_method - run specified test method |
- |
-[tests] can be a list of any number of test modules, classes and test |
-methods. |
- |
-Alternative Usage: %(progName)s discover [options] |
- |
-Options: |
- -v, --verbose Verbose output |
-%(failfast)s%(catchbreak)s%(buffer)s -s directory Directory to start discovery ('.' default) |
- -p pattern Pattern to match test files ('test*.py' default) |
- -t directory Top level directory of project (default to |
- start directory) |
- |
-For test discovery all test modules must be importable from the top |
-level directory of the project. |
-""" |
- |
-USAGE_FROM_MODULE = """\ |
-Usage: %(progName)s [options] [test] [...] |
- |
-Options: |
- -h, --help Show this message |
- -v, --verbose Verbose output |
- -q, --quiet Minimal output |
-%(failfast)s%(catchbreak)s%(buffer)s |
-Examples: |
- %(progName)s - run default set of tests |
- %(progName)s MyTestSuite - run suite 'MyTestSuite' |
- %(progName)s MyTestCase.testSomething - run MyTestCase.testSomething |
- %(progName)s MyTestCase - run all 'test*' test methods |
- in MyTestCase |
-""" |
- |
- |
-class TestProgram(object): |
- """A command-line program that runs a set of tests; this is primarily |
- for making test modules conveniently executable. |
- """ |
- USAGE = USAGE_FROM_MODULE |
- |
- # defaults for testing |
- failfast = catchbreak = buffer = progName = None |
- |
- def __init__(self, module='__main__', defaultTest=None, |
- argv=None, testRunner=None, |
- testLoader=loader.defaultTestLoader, exit=True, |
- verbosity=1, failfast=None, catchbreak=None, buffer=None): |
- if isinstance(module, basestring): |
- self.module = __import__(module) |
- for part in module.split('.')[1:]: |
- self.module = getattr(self.module, part) |
- else: |
- self.module = module |
- if argv is None: |
- argv = sys.argv |
- |
- self.exit = exit |
- self.verbosity = verbosity |
- self.failfast = failfast |
- self.catchbreak = catchbreak |
- self.buffer = buffer |
- self.defaultTest = defaultTest |
- self.testRunner = testRunner |
- self.testLoader = testLoader |
- self.progName = os.path.basename(argv[0]) |
- self.parseArgs(argv) |
- self.runTests() |
- |
- def usageExit(self, msg=None): |
- if msg: |
- print msg |
- usage = {'progName': self.progName, 'catchbreak': '', 'failfast': '', |
- 'buffer': ''} |
- if self.failfast != False: |
- usage['failfast'] = FAILFAST |
- if self.catchbreak != False and installHandler is not None: |
- usage['catchbreak'] = CATCHBREAK |
- if self.buffer != False: |
- usage['buffer'] = BUFFEROUTPUT |
- print self.USAGE % usage |
- sys.exit(2) |
- |
- def parseArgs(self, argv): |
- if len(argv) > 1 and argv[1].lower() == 'discover': |
- self._do_discovery(argv[2:]) |
- return |
- |
- import getopt |
- long_opts = ['help', 'verbose', 'quiet', 'failfast', 'catch', 'buffer'] |
- try: |
- options, args = getopt.getopt(argv[1:], 'hHvqfcb', long_opts) |
- for opt, value in options: |
- if opt in ('-h','-H','--help'): |
- self.usageExit() |
- if opt in ('-q','--quiet'): |
- self.verbosity = 0 |
- if opt in ('-v','--verbose'): |
- self.verbosity = 2 |
- if opt in ('-f','--failfast'): |
- if self.failfast is None: |
- self.failfast = True |
- # Should this raise an exception if -f is not valid? |
- if opt in ('-c','--catch'): |
- if self.catchbreak is None and installHandler is not None: |
- self.catchbreak = True |
- # Should this raise an exception if -c is not valid? |
- if opt in ('-b','--buffer'): |
- if self.buffer is None: |
- self.buffer = True |
- # Should this raise an exception if -b is not valid? |
- if len(args) == 0 and self.defaultTest is None: |
- # createTests will load tests from self.module |
- self.testNames = None |
- elif len(args) > 0: |
- self.testNames = args |
- if __name__ == '__main__': |
- # to support python -m unittest ... |
- self.module = None |
- else: |
- self.testNames = (self.defaultTest,) |
- self.createTests() |
- except getopt.error, msg: |
- self.usageExit(msg) |
- |
- def createTests(self): |
- if self.testNames is None: |
- self.test = self.testLoader.loadTestsFromModule(self.module) |
- else: |
- self.test = self.testLoader.loadTestsFromNames(self.testNames, |
- self.module) |
- |
- def _do_discovery(self, argv, Loader=loader.TestLoader): |
- # handle command line args for test discovery |
- self.progName = '%s discover' % self.progName |
- import optparse |
- parser = optparse.OptionParser() |
- parser.prog = self.progName |
- parser.add_option('-v', '--verbose', dest='verbose', default=False, |
- help='Verbose output', action='store_true') |
- if self.failfast != False: |
- parser.add_option('-f', '--failfast', dest='failfast', default=False, |
- help='Stop on first fail or error', |
- action='store_true') |
- if self.catchbreak != False and installHandler is not None: |
- parser.add_option('-c', '--catch', dest='catchbreak', default=False, |
- help='Catch ctrl-C and display results so far', |
- action='store_true') |
- if self.buffer != False: |
- parser.add_option('-b', '--buffer', dest='buffer', default=False, |
- help='Buffer stdout and stderr during tests', |
- action='store_true') |
- parser.add_option('-s', '--start-directory', dest='start', default='.', |
- help="Directory to start discovery ('.' default)") |
- parser.add_option('-p', '--pattern', dest='pattern', default='test*.py', |
- help="Pattern to match tests ('test*.py' default)") |
- parser.add_option('-t', '--top-level-directory', dest='top', default=None, |
- help='Top level directory of project (defaults to start directory)') |
- |
- options, args = parser.parse_args(argv) |
- if len(args) > 3: |
- self.usageExit() |
- |
- for name, value in zip(('start', 'pattern', 'top'), args): |
- setattr(options, name, value) |
- |
- # only set options from the parsing here |
- # if they weren't set explicitly in the constructor |
- if self.failfast is None: |
- self.failfast = options.failfast |
- if self.catchbreak is None and installHandler is not None: |
- self.catchbreak = options.catchbreak |
- if self.buffer is None: |
- self.buffer = options.buffer |
- |
- if options.verbose: |
- self.verbosity = 2 |
- |
- start_dir = options.start |
- pattern = options.pattern |
- top_level_dir = options.top |
- |
- loader = Loader() |
- self.test = loader.discover(start_dir, pattern, top_level_dir) |
- |
- def runTests(self): |
- if self.catchbreak: |
- installHandler() |
- if self.testRunner is None: |
- self.testRunner = runner.TextTestRunner |
- if isinstance(self.testRunner, (type, types.ClassType)): |
- try: |
- testRunner = self.testRunner(verbosity=self.verbosity, |
- failfast=self.failfast, |
- buffer=self.buffer) |
- except TypeError: |
- # didn't accept the verbosity, buffer or failfast arguments |
- testRunner = self.testRunner() |
- else: |
- # it is assumed to be a TestRunner instance |
- testRunner = self.testRunner |
- self.result = testRunner.run(self.test) |
- if self.exit: |
- sys.exit(not self.result.wasSuccessful()) |
- |
-main = TestProgram |
- |
-def main_(): |
- TestProgram.USAGE = USAGE_AS_MAIN |
- main(module=None) |
- |