diff --git a/Lib/test/test_unittest.py b/Lib/test/test_unittest.py index c8fc43965a3..a88d75b6897 100644 --- a/Lib/test/test_unittest.py +++ b/Lib/test/test_unittest.py @@ -3991,13 +3991,15 @@ class TestDiscovery(TestCase): program._do_discovery(['-p', 'fish'], Loader=Loader) self.assertEqual(program.test, 'tests') self.assertEqual(Loader.args, [('.', 'fish', None)]) + self.assertFalse(program.failfast) Loader.args = [] program = object.__new__(TestProgram) - program._do_discovery(['-p', 'eggs', '-s', 'fish', '-v'], Loader=Loader) + program._do_discovery(['-p', 'eggs', '-s', 'fish', '-v', '-f'], Loader=Loader) self.assertEqual(program.test, 'tests') self.assertEqual(Loader.args, [('fish', 'eggs', None)]) self.assertEqual(program.verbosity, 2) + self.assertTrue(program.failfast) class TestSetups(unittest.TestCase): diff --git a/Lib/unittest/loader.py b/Lib/unittest/loader.py index eea5c13366a..5d11b6e8ffd 100644 --- a/Lib/unittest/loader.py +++ b/Lib/unittest/loader.py @@ -19,11 +19,7 @@ VALID_MODULE_NAME = re.compile(r'[_a-z]\w*\.py$', re.IGNORECASE) def _make_failed_import_test(name, suiteClass): - message = 'Failed to import test module: %s' % name - if hasattr(traceback, 'format_exc'): - # Python 2.3 compatibility - # format_exc returns two frames of discover.py as well - message += '\n%s' % traceback.format_exc() + message = 'Failed to import test module: %s\n%s' % (name, traceback.format_exc()) return _make_failed_test('ModuleImportFailure', name, ImportError(message), suiteClass) diff --git a/Lib/unittest/main.py b/Lib/unittest/main.py index 63fbd160812..1db7978db63 100644 --- a/Lib/unittest/main.py +++ b/Lib/unittest/main.py @@ -159,10 +159,9 @@ class TestProgram(object): for name, value in zip(('start', 'pattern', 'top'), args): setattr(options, name, value) + self.failfast = options.failfast if options.verbose: self.verbosity = 2 - if options.failfast: - self.failfast = True start_dir = options.start pattern = options.pattern