bpo-20548: Use specific asserts in warnings and exceptions tests (#788)

This commit is contained in:
Serhiy Storchaka 2017-03-30 18:05:08 +03:00 committed by GitHub
parent 16f852345b
commit f15c4d374a
3 changed files with 35 additions and 35 deletions

View File

@ -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))

View File

@ -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

View File

@ -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