bpo-20548: Use specific asserts in warnings and exceptions tests (#788)
This commit is contained in:
parent
16f852345b
commit
f15c4d374a
|
@ -537,7 +537,7 @@ class ExceptionTests(unittest.TestCase):
|
||||||
pass
|
pass
|
||||||
obj = None
|
obj = None
|
||||||
obj = wr()
|
obj = wr()
|
||||||
self.assertTrue(obj is None, "%s" % obj)
|
self.assertIsNone(obj)
|
||||||
|
|
||||||
# Qualified "except" without "as"
|
# Qualified "except" without "as"
|
||||||
obj = MyObj()
|
obj = MyObj()
|
||||||
|
@ -548,7 +548,7 @@ class ExceptionTests(unittest.TestCase):
|
||||||
pass
|
pass
|
||||||
obj = None
|
obj = None
|
||||||
obj = wr()
|
obj = wr()
|
||||||
self.assertTrue(obj is None, "%s" % obj)
|
self.assertIsNone(obj)
|
||||||
|
|
||||||
# Bare "except"
|
# Bare "except"
|
||||||
obj = MyObj()
|
obj = MyObj()
|
||||||
|
@ -559,7 +559,7 @@ class ExceptionTests(unittest.TestCase):
|
||||||
pass
|
pass
|
||||||
obj = None
|
obj = None
|
||||||
obj = wr()
|
obj = wr()
|
||||||
self.assertTrue(obj is None, "%s" % obj)
|
self.assertIsNone(obj)
|
||||||
|
|
||||||
# "except" with premature block leave
|
# "except" with premature block leave
|
||||||
obj = MyObj()
|
obj = MyObj()
|
||||||
|
@ -571,7 +571,7 @@ class ExceptionTests(unittest.TestCase):
|
||||||
break
|
break
|
||||||
obj = None
|
obj = None
|
||||||
obj = wr()
|
obj = wr()
|
||||||
self.assertTrue(obj is None, "%s" % obj)
|
self.assertIsNone(obj)
|
||||||
|
|
||||||
# "except" block raising another exception
|
# "except" block raising another exception
|
||||||
obj = MyObj()
|
obj = MyObj()
|
||||||
|
@ -592,7 +592,7 @@ class ExceptionTests(unittest.TestCase):
|
||||||
# guarantee no ref cycles on CPython (don't gc_collect)
|
# guarantee no ref cycles on CPython (don't gc_collect)
|
||||||
if check_impl_detail(cpython=False):
|
if check_impl_detail(cpython=False):
|
||||||
gc_collect()
|
gc_collect()
|
||||||
self.assertTrue(obj is None, "%s" % obj)
|
self.assertIsNone(obj)
|
||||||
|
|
||||||
# Some complicated construct
|
# Some complicated construct
|
||||||
obj = MyObj()
|
obj = MyObj()
|
||||||
|
@ -611,7 +611,7 @@ class ExceptionTests(unittest.TestCase):
|
||||||
if check_impl_detail(cpython=False):
|
if check_impl_detail(cpython=False):
|
||||||
gc_collect()
|
gc_collect()
|
||||||
obj = wr()
|
obj = wr()
|
||||||
self.assertTrue(obj is None, "%s" % obj)
|
self.assertIsNone(obj)
|
||||||
|
|
||||||
# Inside an exception-silencing "with" block
|
# Inside an exception-silencing "with" block
|
||||||
class Context:
|
class Context:
|
||||||
|
@ -627,7 +627,7 @@ class ExceptionTests(unittest.TestCase):
|
||||||
if check_impl_detail(cpython=False):
|
if check_impl_detail(cpython=False):
|
||||||
gc_collect()
|
gc_collect()
|
||||||
obj = wr()
|
obj = wr()
|
||||||
self.assertTrue(obj is None, "%s" % obj)
|
self.assertIsNone(obj)
|
||||||
|
|
||||||
def test_exception_target_in_nested_scope(self):
|
def test_exception_target_in_nested_scope(self):
|
||||||
# issue 4617: This used to raise a SyntaxError
|
# issue 4617: This used to raise a SyntaxError
|
||||||
|
@ -779,7 +779,7 @@ class ExceptionTests(unittest.TestCase):
|
||||||
testfunc(g)
|
testfunc(g)
|
||||||
g = obj = None
|
g = obj = None
|
||||||
obj = wr()
|
obj = wr()
|
||||||
self.assertIs(obj, None)
|
self.assertIsNone(obj)
|
||||||
|
|
||||||
def test_generator_throw_cleanup_exc_state(self):
|
def test_generator_throw_cleanup_exc_state(self):
|
||||||
def do_throw(g):
|
def do_throw(g):
|
||||||
|
@ -904,7 +904,7 @@ class ExceptionTests(unittest.TestCase):
|
||||||
except RecursionError:
|
except RecursionError:
|
||||||
return sys.exc_info()
|
return sys.exc_info()
|
||||||
e, v, tb = g()
|
e, v, tb = g()
|
||||||
self.assertTrue(isinstance(v, RecursionError), type(v))
|
self.assertIsInstance(v, RecursionError, type(v))
|
||||||
self.assertIn("maximum recursion depth exceeded", str(v))
|
self.assertIn("maximum recursion depth exceeded", str(v))
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ class TestRaise(unittest.TestCase):
|
||||||
exc1 = e
|
exc1 = e
|
||||||
raise
|
raise
|
||||||
except IndexError as exc2:
|
except IndexError as exc2:
|
||||||
self.assertTrue(exc1 is exc2)
|
self.assertIs(exc1, exc2)
|
||||||
else:
|
else:
|
||||||
self.fail("No exception raised")
|
self.fail("No exception raised")
|
||||||
|
|
||||||
|
@ -84,7 +84,7 @@ class TestRaise(unittest.TestCase):
|
||||||
except:
|
except:
|
||||||
raise ValueError() from None
|
raise ValueError() from None
|
||||||
except ValueError as e:
|
except ValueError as e:
|
||||||
self.assertTrue(isinstance(e.__context__, TypeError))
|
self.assertIsInstance(e.__context__, TypeError)
|
||||||
self.assertIsNone(e.__cause__)
|
self.assertIsNone(e.__cause__)
|
||||||
|
|
||||||
def test_with_reraise1(self):
|
def test_with_reraise1(self):
|
||||||
|
@ -190,7 +190,7 @@ class TestCause(unittest.TestCase):
|
||||||
try:
|
try:
|
||||||
raise IndexError from cause
|
raise IndexError from cause
|
||||||
except IndexError as e:
|
except IndexError as e:
|
||||||
self.assertTrue(e.__cause__ is cause)
|
self.assertIs(e.__cause__, cause)
|
||||||
else:
|
else:
|
||||||
self.fail("No exception raised")
|
self.fail("No exception raised")
|
||||||
|
|
||||||
|
@ -296,7 +296,7 @@ class TestContext(unittest.TestCase):
|
||||||
finally:
|
finally:
|
||||||
raise OSError
|
raise OSError
|
||||||
except OSError as e:
|
except OSError as e:
|
||||||
self.assertTrue(e.__context__ is None)
|
self.assertIsNone(e.__context__)
|
||||||
else:
|
else:
|
||||||
self.fail("No exception raised")
|
self.fail("No exception raised")
|
||||||
|
|
||||||
|
@ -333,7 +333,7 @@ class TestContext(unittest.TestCase):
|
||||||
except ZeroDivisionError as e:
|
except ZeroDivisionError as e:
|
||||||
raise e
|
raise e
|
||||||
except ZeroDivisionError as e:
|
except ZeroDivisionError as e:
|
||||||
self.assertTrue(e.__context__ is None, e.__context__)
|
self.assertIsNone(e.__context__)
|
||||||
|
|
||||||
def test_reraise_cycle_broken(self):
|
def test_reraise_cycle_broken(self):
|
||||||
# Non-trivial context cycles (through re-raising a previous exception)
|
# Non-trivial context cycles (through re-raising a previous exception)
|
||||||
|
@ -347,7 +347,7 @@ class TestContext(unittest.TestCase):
|
||||||
except ZeroDivisionError:
|
except ZeroDivisionError:
|
||||||
raise a
|
raise a
|
||||||
except NameError as e:
|
except NameError as e:
|
||||||
self.assertTrue(e.__context__.__context__ is None)
|
self.assertIsNone(e.__context__.__context__)
|
||||||
|
|
||||||
def test_3118(self):
|
def test_3118(self):
|
||||||
# deleting the generator caused the __context__ to be cleared
|
# deleting the generator caused the __context__ to be cleared
|
||||||
|
|
|
@ -248,7 +248,7 @@ class FilterTests(BaseTest):
|
||||||
text = 'handle normally'
|
text = 'handle normally'
|
||||||
self.module.warn(text)
|
self.module.warn(text)
|
||||||
self.assertEqual(str(w[-1].message), text)
|
self.assertEqual(str(w[-1].message), text)
|
||||||
self.assertTrue(w[-1].category is UserWarning)
|
self.assertIs(w[-1].category, UserWarning)
|
||||||
|
|
||||||
self.module.filterwarnings("ignore", "", Warning, "", 0)
|
self.module.filterwarnings("ignore", "", Warning, "", 0)
|
||||||
text = 'filtered out'
|
text = 'filtered out'
|
||||||
|
@ -261,7 +261,7 @@ class FilterTests(BaseTest):
|
||||||
text = 'nonmatching text'
|
text = 'nonmatching text'
|
||||||
self.module.warn(text)
|
self.module.warn(text)
|
||||||
self.assertEqual(str(w[-1].message), text)
|
self.assertEqual(str(w[-1].message), text)
|
||||||
self.assertTrue(w[-1].category is UserWarning)
|
self.assertIs(w[-1].category, UserWarning)
|
||||||
|
|
||||||
def test_message_matching(self):
|
def test_message_matching(self):
|
||||||
with original_warnings.catch_warnings(record=True,
|
with original_warnings.catch_warnings(record=True,
|
||||||
|
@ -353,7 +353,7 @@ class WarnTests(BaseTest):
|
||||||
text = 'multi %d' %i # Different text on each call.
|
text = 'multi %d' %i # Different text on each call.
|
||||||
self.module.warn(text)
|
self.module.warn(text)
|
||||||
self.assertEqual(str(w[-1].message), text)
|
self.assertEqual(str(w[-1].message), text)
|
||||||
self.assertTrue(w[-1].category is UserWarning)
|
self.assertIs(w[-1].category, UserWarning)
|
||||||
|
|
||||||
# Issue 3639
|
# Issue 3639
|
||||||
def test_warn_nonstandard_types(self):
|
def test_warn_nonstandard_types(self):
|
||||||
|
@ -575,7 +575,7 @@ class CWarnTests(WarnTests, unittest.TestCase):
|
||||||
# As an early adopter, we sanity check the
|
# As an early adopter, we sanity check the
|
||||||
# test.support.import_fresh_module utility function
|
# test.support.import_fresh_module utility function
|
||||||
def test_accelerated(self):
|
def test_accelerated(self):
|
||||||
self.assertFalse(original_warnings is self.module)
|
self.assertIsNot(original_warnings, self.module)
|
||||||
self.assertFalse(hasattr(self.module.warn, '__code__'))
|
self.assertFalse(hasattr(self.module.warn, '__code__'))
|
||||||
|
|
||||||
class PyWarnTests(WarnTests, unittest.TestCase):
|
class PyWarnTests(WarnTests, unittest.TestCase):
|
||||||
|
@ -584,7 +584,7 @@ class PyWarnTests(WarnTests, unittest.TestCase):
|
||||||
# As an early adopter, we sanity check the
|
# As an early adopter, we sanity check the
|
||||||
# test.support.import_fresh_module utility function
|
# test.support.import_fresh_module utility function
|
||||||
def test_pure_python(self):
|
def test_pure_python(self):
|
||||||
self.assertFalse(original_warnings is self.module)
|
self.assertIsNot(original_warnings, self.module)
|
||||||
self.assertTrue(hasattr(self.module.warn, '__code__'))
|
self.assertTrue(hasattr(self.module.warn, '__code__'))
|
||||||
|
|
||||||
|
|
||||||
|
@ -884,20 +884,20 @@ class CatchWarningTests(BaseTest):
|
||||||
# Ensure both showwarning and filters are restored when recording
|
# Ensure both showwarning and filters are restored when recording
|
||||||
with wmod.catch_warnings(module=wmod, record=True):
|
with wmod.catch_warnings(module=wmod, record=True):
|
||||||
wmod.filters = wmod.showwarning = object()
|
wmod.filters = wmod.showwarning = object()
|
||||||
self.assertTrue(wmod.filters is orig_filters)
|
self.assertIs(wmod.filters, orig_filters)
|
||||||
self.assertTrue(wmod.showwarning is orig_showwarning)
|
self.assertIs(wmod.showwarning, orig_showwarning)
|
||||||
# Same test, but with recording disabled
|
# Same test, but with recording disabled
|
||||||
with wmod.catch_warnings(module=wmod, record=False):
|
with wmod.catch_warnings(module=wmod, record=False):
|
||||||
wmod.filters = wmod.showwarning = object()
|
wmod.filters = wmod.showwarning = object()
|
||||||
self.assertTrue(wmod.filters is orig_filters)
|
self.assertIs(wmod.filters, orig_filters)
|
||||||
self.assertTrue(wmod.showwarning is orig_showwarning)
|
self.assertIs(wmod.showwarning, orig_showwarning)
|
||||||
|
|
||||||
def test_catch_warnings_recording(self):
|
def test_catch_warnings_recording(self):
|
||||||
wmod = self.module
|
wmod = self.module
|
||||||
# Ensure warnings are recorded when requested
|
# Ensure warnings are recorded when requested
|
||||||
with wmod.catch_warnings(module=wmod, record=True) as w:
|
with wmod.catch_warnings(module=wmod, record=True) as w:
|
||||||
self.assertEqual(w, [])
|
self.assertEqual(w, [])
|
||||||
self.assertTrue(type(w) is list)
|
self.assertIs(type(w), list)
|
||||||
wmod.simplefilter("always")
|
wmod.simplefilter("always")
|
||||||
wmod.warn("foo")
|
wmod.warn("foo")
|
||||||
self.assertEqual(str(w[-1].message), "foo")
|
self.assertEqual(str(w[-1].message), "foo")
|
||||||
|
@ -910,8 +910,8 @@ class CatchWarningTests(BaseTest):
|
||||||
# Ensure warnings are not recorded when not requested
|
# Ensure warnings are not recorded when not requested
|
||||||
orig_showwarning = wmod.showwarning
|
orig_showwarning = wmod.showwarning
|
||||||
with wmod.catch_warnings(module=wmod, record=False) as w:
|
with wmod.catch_warnings(module=wmod, record=False) as w:
|
||||||
self.assertTrue(w is None)
|
self.assertIsNone(w)
|
||||||
self.assertTrue(wmod.showwarning is orig_showwarning)
|
self.assertIs(wmod.showwarning, orig_showwarning)
|
||||||
|
|
||||||
def test_catch_warnings_reentry_guard(self):
|
def test_catch_warnings_reentry_guard(self):
|
||||||
wmod = self.module
|
wmod = self.module
|
||||||
|
@ -932,17 +932,17 @@ class CatchWarningTests(BaseTest):
|
||||||
orig_showwarning = wmod.showwarning
|
orig_showwarning = wmod.showwarning
|
||||||
# Ensure default behaviour is not to record warnings
|
# Ensure default behaviour is not to record warnings
|
||||||
with wmod.catch_warnings(module=wmod) as w:
|
with wmod.catch_warnings(module=wmod) as w:
|
||||||
self.assertTrue(w is None)
|
self.assertIsNone(w)
|
||||||
self.assertTrue(wmod.showwarning is orig_showwarning)
|
self.assertIs(wmod.showwarning, orig_showwarning)
|
||||||
self.assertTrue(wmod.filters is not orig_filters)
|
self.assertIsNot(wmod.filters, orig_filters)
|
||||||
self.assertTrue(wmod.filters is orig_filters)
|
self.assertIs(wmod.filters, orig_filters)
|
||||||
if wmod is sys.modules['warnings']:
|
if wmod is sys.modules['warnings']:
|
||||||
# Ensure the default module is this one
|
# Ensure the default module is this one
|
||||||
with wmod.catch_warnings() as w:
|
with wmod.catch_warnings() as w:
|
||||||
self.assertTrue(w is None)
|
self.assertIsNone(w)
|
||||||
self.assertTrue(wmod.showwarning is orig_showwarning)
|
self.assertIs(wmod.showwarning, orig_showwarning)
|
||||||
self.assertTrue(wmod.filters is not orig_filters)
|
self.assertIsNot(wmod.filters, orig_filters)
|
||||||
self.assertTrue(wmod.filters is orig_filters)
|
self.assertIs(wmod.filters, orig_filters)
|
||||||
|
|
||||||
def test_record_override_showwarning_before(self):
|
def test_record_override_showwarning_before(self):
|
||||||
# Issue #28835: If warnings.showwarning() was overriden, make sure
|
# Issue #28835: If warnings.showwarning() was overriden, make sure
|
||||||
|
|
Loading…
Reference in New Issue