diff options
author | Barry Warsaw <barry@python.org> | 2014-09-08 21:29:02 (GMT) |
---|---|---|
committer | Barry Warsaw <barry@python.org> | 2014-09-08 21:29:02 (GMT) |
commit | bb1e3f1ebe99e1cb5a7c136991b8e8f41e4fa4bb (patch) | |
tree | 1fcf82cb99e15e4505cf4e8df3cbafae285d9cb1 /Lib/unittest/test/test_loader.py | |
parent | d78742a260ba09e53c844de7b1fd11a11c674945 (diff) | |
download | cpython-bb1e3f1ebe99e1cb5a7c136991b8e8f41e4fa4bb.zip cpython-bb1e3f1ebe99e1cb5a7c136991b8e8f41e4fa4bb.tar.gz cpython-bb1e3f1ebe99e1cb5a7c136991b8e8f41e4fa4bb.tar.bz2 |
A few tweaks for issue16662 based on feedback from Robert Collins.
Diffstat (limited to 'Lib/unittest/test/test_loader.py')
-rw-r--r-- | Lib/unittest/test/test_loader.py | 77 |
1 files changed, 41 insertions, 36 deletions
diff --git a/Lib/unittest/test/test_loader.py b/Lib/unittest/test/test_loader.py index d363394..7c23414 100644 --- a/Lib/unittest/test/test_loader.py +++ b/Lib/unittest/test/test_loader.py @@ -196,23 +196,23 @@ class Test_TestLoader(unittest.TestCase): @warningregistry def test_loadTestsFromModule__use_load_tests_deprecated_positional(self): + m = types.ModuleType('m') + class MyTestCase(unittest.TestCase): + def test(self): + pass + m.testcase_1 = MyTestCase + + load_tests_args = [] + def load_tests(loader, tests, pattern): + self.assertIsInstance(tests, unittest.TestSuite) + load_tests_args.extend((loader, tests, pattern)) + return tests + m.load_tests = load_tests + # The method still works. + loader = unittest.TestLoader() + # use_load_tests=True as a positional argument. with warnings.catch_warnings(record=True) as w: warnings.simplefilter('always') - m = types.ModuleType('m') - class MyTestCase(unittest.TestCase): - def test(self): - pass - m.testcase_1 = MyTestCase - - load_tests_args = [] - def load_tests(loader, tests, pattern): - self.assertIsInstance(tests, unittest.TestSuite) - load_tests_args.extend((loader, tests, pattern)) - return tests - m.load_tests = load_tests - # The method still works. - loader = unittest.TestLoader() - # use_load_tests=True as a positional argument. suite = loader.loadTestsFromModule(m, False) self.assertIsInstance(suite, unittest.TestSuite) # load_tests was still called because use_load_tests is deprecated @@ -225,22 +225,22 @@ class Test_TestLoader(unittest.TestCase): @warningregistry def test_loadTestsFromModule__use_load_tests_deprecated_keyword(self): + m = types.ModuleType('m') + class MyTestCase(unittest.TestCase): + def test(self): + pass + m.testcase_1 = MyTestCase + + load_tests_args = [] + def load_tests(loader, tests, pattern): + self.assertIsInstance(tests, unittest.TestSuite) + load_tests_args.extend((loader, tests, pattern)) + return tests + m.load_tests = load_tests + # The method still works. + loader = unittest.TestLoader() with warnings.catch_warnings(record=True) as w: warnings.simplefilter('always') - m = types.ModuleType('m') - class MyTestCase(unittest.TestCase): - def test(self): - pass - m.testcase_1 = MyTestCase - - load_tests_args = [] - def load_tests(loader, tests, pattern): - self.assertIsInstance(tests, unittest.TestSuite) - load_tests_args.extend((loader, tests, pattern)) - return tests - m.load_tests = load_tests - # The method still works. - loader = unittest.TestLoader() suite = loader.loadTestsFromModule(m, use_load_tests=False) self.assertIsInstance(suite, unittest.TestSuite) # load_tests was still called because use_load_tests is deprecated @@ -251,6 +251,7 @@ class Test_TestLoader(unittest.TestCase): self.assertEqual(str(w[-1].message), 'use_load_tests is deprecated and ignored') + @warningregistry def test_loadTestsFromModule__too_many_positional_args(self): m = types.ModuleType('m') class MyTestCase(unittest.TestCase): @@ -265,14 +266,18 @@ class Test_TestLoader(unittest.TestCase): return tests m.load_tests = load_tests loader = unittest.TestLoader() - with self.assertRaises(TypeError) as cm: + with self.assertRaises(TypeError) as cm, \ + warnings.catch_warning(record=True) as w: loader.loadTestsFromModule(m, False, 'testme.*') - self.assertEqual(type(cm.exception), TypeError) - # The error message names the first bad argument alphabetically, - # however use_load_tests (which sorts first) is ignored. - self.assertEqual( - str(cm.exception), - 'loadTestsFromModule() takes 1 positional argument but 2 were given') + # We still got the deprecation warning. + self.assertIs(w[-1].category, DeprecationWarning) + self.assertEqual(str(w[-1].message), + 'use_load_tests is deprecated and ignored') + # We also got a TypeError for too many positional arguments. + self.assertEqual(type(cm.exception), TypeError) + self.assertEqual( + str(cm.exception), + 'loadTestsFromModule() takes 1 positional argument but 3 were given') @warningregistry def test_loadTestsFromModule__use_load_tests_other_bad_keyword(self): |