cpython: 5418ab3e5556 (original) (raw)

--- a/Lib/unittest/case.py +++ b/Lib/unittest/case.py @@ -129,15 +129,17 @@ class _BaseTestCaseContext: msg = self.test_case._formatMessage(self.msg, standardMsg) raise self.test_case.failureException(msg) +def _sentinel(*args, **kwargs):

class _AssertRaisesBaseContext(_BaseTestCaseContext):

@@ -151,11 +153,11 @@ class _AssertRaisesBaseContext(_BaseTest def handle(self, name, callable_obj, args, kwargs): """

@@ -674,7 +676,7 @@ class TestCase(object): except UnicodeDecodeError: return '%s : %s' % (safe_repr(standardMsg), safe_repr(msg))

@@ -682,7 +684,7 @@ class TestCase(object): deemed to have suffered an error, exactly as for an unexpected exception.

with self.assertRaises(SomeException): @@ -703,7 +705,7 @@ class TestCase(object): context = _AssertRaisesContext(excClass, self, callableObj) return context.handle('assertRaises', callableObj, args, kwargs)

@@ -711,7 +713,7 @@ class TestCase(object): warning filtering rules in effect, it might be silenced, printed out, or raised as an exception.

with self.assertWarns(SomeWarning): @@ -1219,7 +1221,7 @@ class TestCase(object): self.fail(self._formatMessage(msg, standardMsg)) def assertRaisesRegex(self, expected_exception, expected_regex,

Args: @@ -1238,7 +1240,7 @@ class TestCase(object): return context.handle('assertRaisesRegex', callable_obj, args, kwargs) def assertWarnsRegex(self, expected_warning, expected_regex,

--- a/Lib/unittest/test/test_case.py +++ b/Lib/unittest/test/test_case.py @@ -1134,6 +1134,50 @@ test case self.assertRaises(self.failureException, self.assertRegex, 'saaas', r'aaaa')

+

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

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)

@@ -1271,6 +1320,9 @@ test case with self.assertRaises(self.failureException): self.assertWarnsRegex(RuntimeWarning, "o+", lambda: 0)

--- a/Misc/NEWS +++ b/Misc/NEWS @@ -42,6 +42,9 @@ Core and Builtins Library ------- +- Issue #24134: assertRaises(), assertRaisesRegex(), assertWarns() and