[Python-checkins] cpython (3.4): Reverted issue #24134 changes (except new tests).

serhiy.storchaka python-checkins at python.org
Sat May 16 15:33:03 CEST 2015


https://hg.python.org/cpython/rev/a69a346f0c34
changeset:   96081:a69a346f0c34
branch:      3.4
parent:      96073:526ce81f700d
user:        Serhiy Storchaka <storchaka at gmail.com>
date:        Sat May 16 16:25:43 2015 +0300
summary:
  Reverted issue #24134 changes (except new tests).

files:
  Lib/unittest/case.py           |  24 ++++++++++-----------
  Lib/unittest/test/test_case.py |  11 ----------
  Misc/NEWS                      |   3 --
  3 files changed, 11 insertions(+), 27 deletions(-)


diff --git a/Lib/unittest/case.py b/Lib/unittest/case.py
--- a/Lib/unittest/case.py
+++ b/Lib/unittest/case.py
@@ -129,17 +129,15 @@
         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 @@
 
     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 @@
         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 @@
            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 @@
         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 @@
            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 @@
             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 @@
         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
--- a/Lib/unittest/test/test_case.py
+++ b/Lib/unittest/test/test_case.py
@@ -1147,9 +1147,6 @@
         # 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 @@
 
         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 @@
         # 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 @@
         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
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -48,9 +48,6 @@
 - 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.
 

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list