mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
Issue #24134: assertRaises(), assertRaisesRegex(), assertWarns() and
assertWarnsRegex() checks are not longer successful if the callable is None. Added tests for assertRaises().
This commit is contained in:
parent
ab914780ba
commit
e130503c7b
3 changed files with 68 additions and 11 deletions
|
@ -1134,6 +1134,50 @@ test case
|
|||
self.assertRaises(self.failureException, self.assertRegex,
|
||||
'saaas', r'aaaa')
|
||||
|
||||
def testAssertRaisesCallable(self):
|
||||
class ExceptionMock(Exception):
|
||||
pass
|
||||
def Stub():
|
||||
raise ExceptionMock('We expect')
|
||||
self.assertRaises(ExceptionMock, Stub)
|
||||
# A tuple of exception classes is accepted
|
||||
self.assertRaises((ValueError, ExceptionMock), Stub)
|
||||
# *args and **kwargs also work
|
||||
self.assertRaises(ValueError, int, '19', base=8)
|
||||
# Failure when no exception is raised
|
||||
with self.assertRaises(self.failureException):
|
||||
self.assertRaises(ExceptionMock, lambda: 0)
|
||||
# Failure when the function is None
|
||||
with self.assertRaises(TypeError):
|
||||
self.assertRaises(ExceptionMock, None)
|
||||
# Failure when another exception is raised
|
||||
with self.assertRaises(ExceptionMock):
|
||||
self.assertRaises(ValueError, Stub)
|
||||
|
||||
def testAssertRaisesContext(self):
|
||||
class ExceptionMock(Exception):
|
||||
pass
|
||||
def Stub():
|
||||
raise ExceptionMock('We expect')
|
||||
with self.assertRaises(ExceptionMock):
|
||||
Stub()
|
||||
# A tuple of exception classes is accepted
|
||||
with self.assertRaises((ValueError, ExceptionMock)) as cm:
|
||||
Stub()
|
||||
# The context manager exposes caught exception
|
||||
self.assertIsInstance(cm.exception, ExceptionMock)
|
||||
self.assertEqual(cm.exception.args[0], 'We expect')
|
||||
# *args and **kwargs also work
|
||||
with self.assertRaises(ValueError):
|
||||
int('19', base=8)
|
||||
# Failure when no exception is raised
|
||||
with self.assertRaises(self.failureException):
|
||||
with self.assertRaises(ExceptionMock):
|
||||
pass
|
||||
# Failure when another exception is raised
|
||||
with self.assertRaises(ExceptionMock):
|
||||
self.assertRaises(ValueError, Stub)
|
||||
|
||||
def testAssertRaisesRegex(self):
|
||||
class ExceptionMock(Exception):
|
||||
pass
|
||||
|
@ -1143,6 +1187,8 @@ test case
|
|||
|
||||
self.assertRaisesRegex(ExceptionMock, re.compile('expect$'), Stub)
|
||||
self.assertRaisesRegex(ExceptionMock, 'expect$', Stub)
|
||||
with self.assertRaises(TypeError):
|
||||
self.assertRaisesRegex(ExceptionMock, 'expect$', None)
|
||||
|
||||
def testAssertNotRaisesRegex(self):
|
||||
self.assertRaisesRegex(
|
||||
|
@ -1210,6 +1256,9 @@ test case
|
|||
# Failure when no warning is triggered
|
||||
with self.assertRaises(self.failureException):
|
||||
self.assertWarns(RuntimeWarning, lambda: 0)
|
||||
# Failure when the function is None
|
||||
with self.assertRaises(TypeError):
|
||||
self.assertWarns(RuntimeWarning, None)
|
||||
# Failure when another warning is triggered
|
||||
with warnings.catch_warnings():
|
||||
# Force default filter (in case tests are run with -We)
|
||||
|
@ -1271,6 +1320,9 @@ test case
|
|||
with self.assertRaises(self.failureException):
|
||||
self.assertWarnsRegex(RuntimeWarning, "o+",
|
||||
lambda: 0)
|
||||
# Failure when the function is None
|
||||
with self.assertRaises(TypeError):
|
||||
self.assertWarnsRegex(RuntimeWarning, "o+", None)
|
||||
# Failure when another warning is triggered
|
||||
with warnings.catch_warnings():
|
||||
# Force default filter (in case tests are run with -We)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue