summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2016-05-20 20:28:37 (GMT)
committerSerhiy Storchaka <storchaka@gmail.com>2016-05-20 20:28:37 (GMT)
commit0dad755600d88b48d41b11630dcd1862e3c4ee27 (patch)
treeeceb3d0c1f2d8bf1bdb590d013b3222604af4783
parent13e602ea0f08e8c04d635356375d1d2ab5a9b964 (diff)
downloadcpython-0dad755600d88b48d41b11630dcd1862e3c4ee27.zip
cpython-0dad755600d88b48d41b11630dcd1862e3c4ee27.tar.gz
cpython-0dad755600d88b48d41b11630dcd1862e3c4ee27.tar.bz2
Issue #27063: Some unittest loader tests were silently skipped.
-rw-r--r--Lib/unittest/test/test_loader.py54
1 files changed, 28 insertions, 26 deletions
diff --git a/Lib/unittest/test/test_loader.py b/Lib/unittest/test/test_loader.py
index 68f1036..4b97882 100644
--- a/Lib/unittest/test/test_loader.py
+++ b/Lib/unittest/test/test_loader.py
@@ -8,7 +8,7 @@ import unittest
# test isolation and reproducibility.
def warningregistry(func):
def wrapper(*args, **kws):
- missing = object()
+ missing = []
saved = getattr(warnings, '__warningregistry__', missing).copy()
try:
return func(*args, **kws)
@@ -20,6 +20,7 @@ def warningregistry(func):
pass
else:
warnings.__warningregistry__ = saved
+ return wrapper
class Test_TestLoader(unittest.TestCase):
@@ -197,9 +198,9 @@ class Test_TestLoader(unittest.TestCase):
# ignored (and deprecated).
load_tests_args = []
with warnings.catch_warnings(record=False):
- warnings.simplefilter('never')
+ warnings.simplefilter('ignore')
suite = loader.loadTestsFromModule(m, use_load_tests=False)
- self.assertEqual(load_tests_args, [loader, suite, None])
+ self.assertEqual(load_tests_args, [loader, suite, None])
@warningregistry
def test_loadTestsFromModule__use_load_tests_deprecated_positional(self):
@@ -221,10 +222,10 @@ class Test_TestLoader(unittest.TestCase):
with warnings.catch_warnings(record=True) as w:
warnings.simplefilter('always')
suite = loader.loadTestsFromModule(m, False)
- self.assertIsInstance(suite, unittest.TestSuite)
- # load_tests was still called because use_load_tests is deprecated
- # and ignored.
- self.assertEqual(load_tests_args, [loader, suite, None])
+ self.assertIsInstance(suite, unittest.TestSuite)
+ # load_tests was still called because use_load_tests is deprecated
+ # and ignored.
+ self.assertEqual(load_tests_args, [loader, suite, None])
# We got a warning.
self.assertIs(w[-1].category, DeprecationWarning)
self.assertEqual(str(w[-1].message),
@@ -249,14 +250,14 @@ class Test_TestLoader(unittest.TestCase):
with warnings.catch_warnings(record=True) as w:
warnings.simplefilter('always')
suite = loader.loadTestsFromModule(m, use_load_tests=False)
- self.assertIsInstance(suite, unittest.TestSuite)
- # load_tests was still called because use_load_tests is deprecated
- # and ignored.
- self.assertEqual(load_tests_args, [loader, suite, None])
- # We got a warning.
- self.assertIs(w[-1].category, DeprecationWarning)
- self.assertEqual(str(w[-1].message),
- 'use_load_tests is deprecated and ignored')
+ self.assertIsInstance(suite, unittest.TestSuite)
+ # load_tests was still called because use_load_tests is deprecated
+ # and ignored.
+ self.assertEqual(load_tests_args, [loader, suite, None])
+ # We got a warning.
+ self.assertIs(w[-1].category, DeprecationWarning)
+ self.assertEqual(str(w[-1].message),
+ 'use_load_tests is deprecated and ignored')
@warningregistry
def test_loadTestsFromModule__too_many_positional_args(self):
@@ -274,17 +275,18 @@ class Test_TestLoader(unittest.TestCase):
m.load_tests = load_tests
loader = unittest.TestLoader()
with self.assertRaises(TypeError) as cm, \
- warnings.catch_warning(record=True) as w:
+ warnings.catch_warnings(record=True) as w:
+ warnings.simplefilter('always')
loader.loadTestsFromModule(m, False, 'testme.*')
- # 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')
+ # 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):
@@ -302,7 +304,7 @@ class Test_TestLoader(unittest.TestCase):
m.load_tests = load_tests
loader = unittest.TestLoader()
with warnings.catch_warnings():
- warnings.simplefilter('never')
+ warnings.simplefilter('ignore')
with self.assertRaises(TypeError) as cm:
loader.loadTestsFromModule(
m, use_load_tests=False, very_bad=True, worse=False)