summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2015-05-16 13:25:43 (GMT)
committerSerhiy Storchaka <storchaka@gmail.com>2015-05-16 13:25:43 (GMT)
commita7d00c207fbeb8ee51b56ed388ed38e37df0c04e (patch)
treed3c243bb2e5687e0dd782e00321518ab490be95f
parent75fb816c78be5668d5274df9c9a0c26d841339ad (diff)
downloadcpython-a7d00c207fbeb8ee51b56ed388ed38e37df0c04e.zip
cpython-a7d00c207fbeb8ee51b56ed388ed38e37df0c04e.tar.gz
cpython-a7d00c207fbeb8ee51b56ed388ed38e37df0c04e.tar.bz2
Reverted issue #24134 changes (except new tests).
-rw-r--r--Lib/unittest/case.py24
-rw-r--r--Lib/unittest/test/test_case.py11
-rw-r--r--Misc/NEWS3
3 files changed, 11 insertions, 27 deletions
diff --git a/Lib/unittest/case.py b/Lib/unittest/case.py
index 225a143..69888a5 100644
--- a/Lib/unittest/case.py
+++ b/Lib/unittest/case.py
@@ -129,17 +129,15 @@ class _BaseTestCaseContext:
msg = self.test_case._formatMessage(self.msg, standardMsg)
raise self.test_case.failureException(msg)
-def _sentinel(*args, **kwargs):
- raise AssertionError('Should never be called')
class _AssertRaisesBaseContext(_BaseTestCaseContext):
- def __init__(self, expected, test_case, callable_obj=_sentinel,
+ def __init__(self, expected, test_case, callable_obj=None,
expected_regex=None):
_BaseTestCaseContext.__init__(self, test_case)
self.expected = expected
self.test_case = test_case
- if callable_obj is not _sentinel:
+ if callable_obj is not None:
try:
self.obj_name = callable_obj.__name__
except AttributeError:
@@ -153,11 +151,11 @@ class _AssertRaisesBaseContext(_BaseTestCaseContext):
def handle(self, name, callable_obj, args, kwargs):
"""
- If callable_obj is _sentinel, assertRaises/Warns is being used as a
+ If callable_obj is None, assertRaises/Warns is being used as a
context manager, so check for a 'msg' kwarg and return self.
- If callable_obj is not _sentinel, call it passing args and kwargs.
+ If callable_obj is not None, call it passing args and kwargs.
"""
- if callable_obj is _sentinel:
+ if callable_obj is None:
self.msg = kwargs.pop('msg', None)
return self
with self:
@@ -676,7 +674,7 @@ class TestCase(object):
except UnicodeDecodeError:
return '%s : %s' % (safe_repr(standardMsg), safe_repr(msg))
- def assertRaises(self, excClass, callableObj=_sentinel, *args, **kwargs):
+ def assertRaises(self, excClass, callableObj=None, *args, **kwargs):
"""Fail unless an exception of class excClass is raised
by callableObj when invoked with arguments args and keyword
arguments kwargs. If a different type of exception is
@@ -684,7 +682,7 @@ class TestCase(object):
deemed to have suffered an error, exactly as for an
unexpected exception.
- If called with callableObj omitted, will return a
+ If called with callableObj omitted or None, will return a
context object used like this::
with self.assertRaises(SomeException):
@@ -705,7 +703,7 @@ class TestCase(object):
context = _AssertRaisesContext(excClass, self, callableObj)
return context.handle('assertRaises', callableObj, args, kwargs)
- def assertWarns(self, expected_warning, callable_obj=_sentinel, *args, **kwargs):
+ def assertWarns(self, expected_warning, callable_obj=None, *args, **kwargs):
"""Fail unless a warning of class warnClass is triggered
by callable_obj when invoked with arguments args and keyword
arguments kwargs. If a different type of warning is
@@ -713,7 +711,7 @@ class TestCase(object):
warning filtering rules in effect, it might be silenced, printed
out, or raised as an exception.
- If called with callable_obj omitted, will return a
+ If called with callable_obj omitted or None, will return a
context object used like this::
with self.assertWarns(SomeWarning):
@@ -1221,7 +1219,7 @@ class TestCase(object):
self.fail(self._formatMessage(msg, standardMsg))
def assertRaisesRegex(self, expected_exception, expected_regex,
- callable_obj=_sentinel, *args, **kwargs):
+ callable_obj=None, *args, **kwargs):
"""Asserts that the message in a raised exception matches a regex.
Args:
@@ -1240,7 +1238,7 @@ class TestCase(object):
return context.handle('assertRaisesRegex', callable_obj, args, kwargs)
def assertWarnsRegex(self, expected_warning, expected_regex,
- callable_obj=_sentinel, *args, **kwargs):
+ callable_obj=None, *args, **kwargs):
"""Asserts that the message in a triggered warning matches a regexp.
Basic functioning is similar to assertWarns() with the addition
that only warnings whose messages also match the regular expression
diff --git a/Lib/unittest/test/test_case.py b/Lib/unittest/test/test_case.py
index 08f2ae8..321d67a 100644
--- a/Lib/unittest/test/test_case.py
+++ b/Lib/unittest/test/test_case.py
@@ -1147,9 +1147,6 @@ test case
# 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)
@@ -1187,8 +1184,6 @@ 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(
@@ -1256,9 +1251,6 @@ 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)
@@ -1320,9 +1312,6 @@ 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)
diff --git a/Misc/NEWS b/Misc/NEWS
index 7701261..24597f8 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -48,9 +48,6 @@ Library
- Issue #23796: peak and read1 methods of BufferedReader now raise ValueError
if they called on a closed object. Patch by John Hergenroeder.
-- Issue #24134: assertRaises(), assertRaisesRegex(), assertWarns() and
- assertWarnsRegex() checks are not longer successful if the callable is None.
-
- Issue #24094: Fix possible crash in json.encode with poorly behaved dict
subclasses.