[Python-checkins] r78110 - in python/branches/py3k: Doc/library/unittest.rst Lib/test/test_unittest.py Lib/unittest/case.py

ezio.melotti python-checkins at python.org
Mon Feb 8 22:57:48 CET 2010


Author: ezio.melotti
Date: Mon Feb  8 22:57:48 2010
New Revision: 78110

Log:
Merged revisions 78091,78094,78109 via svnmerge from 
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r78091 | georg.brandl | 2010-02-07 19:02:22 +0200 (Sun, 07 Feb 2010) | 1 line
  
  Rename "exc_value" attribute on assertRaises context manager to "exception".
........
  r78094 | michael.foord | 2010-02-07 20:44:12 +0200 (Sun, 07 Feb 2010) | 1 line
  
  assertRaises as context manager now allows you to access exception as documented
........
  r78109 | ezio.melotti | 2010-02-08 23:52:08 +0200 (Mon, 08 Feb 2010) | 1 line
  
  Fix exc_value -> exception in docstring
........


Modified:
   python/branches/py3k/   (props changed)
   python/branches/py3k/Doc/library/unittest.rst
   python/branches/py3k/Lib/test/test_unittest.py
   python/branches/py3k/Lib/unittest/case.py

Modified: python/branches/py3k/Doc/library/unittest.rst
==============================================================================
--- python/branches/py3k/Doc/library/unittest.rst	(original)
+++ python/branches/py3k/Doc/library/unittest.rst	Mon Feb  8 22:57:48 2010
@@ -895,24 +895,24 @@
              do_something()
 
       The context manager will store the caught exception object in its
-      :attr:`exc_value` attribute.  This can be useful if the intention
+      :attr:`exception` attribute.  This can be useful if the intention
       is to perform additional checks on the exception raised::
 
         with self.assertRaises(SomeException) as cm:
             do_something()
 
-        the_exception = cm.exc_value
+        the_exception = cm.exception
         self.assertEqual(the_exception.error_code, 3)
 
-        .. versionchanged:: 3.1
+      .. versionchanged:: 3.1
          Added the ability to use :meth:`assertRaises` as a context manager.
 
+      .. versionchanged:: 3.2
+         Added the :attr:`exception` attribute.
+
       .. deprecated:: 3.1
          :meth:`failUnlessRaises`.
 
-      .. versionchanged:: 3.2
-         Added the :attr:`exc_value` attribute.
-
 
    .. method:: assertRaisesRegexp(exception, regexp[, callable, ...])
 

Modified: python/branches/py3k/Lib/test/test_unittest.py
==============================================================================
--- python/branches/py3k/Lib/test/test_unittest.py	(original)
+++ python/branches/py3k/Lib/test/test_unittest.py	Mon Feb  8 22:57:48 2010
@@ -626,7 +626,6 @@
         # a good chance that it won't be imported when this test is run
         module_name = 'audioop'
 
-        import sys
         if module_name in sys.modules:
             del sys.modules[module_name]
 
@@ -1014,7 +1013,6 @@
         # a good chance that it won't be imported when this test is run
         module_name = 'audioop'
 
-        import sys
         if module_name in sys.modules:
             del sys.modules[module_name]
 
@@ -1972,8 +1970,6 @@
     # methods. Contains formatted tracebacks instead
     # of sys.exc_info() results."
     def test_addFailure(self):
-        import sys
-
         class Foo(unittest.TestCase):
             def test_1(self):
                 pass
@@ -2022,8 +2018,6 @@
     # methods. Contains formatted tracebacks instead
     # of sys.exc_info() results."
     def test_addError(self):
-        import sys
-
         class Foo(unittest.TestCase):
             def test_1(self):
                 pass
@@ -2861,7 +2855,7 @@
         ctx = self.assertRaises(ExceptionMock)
         with ctx:
             Stub(v)
-        e = ctx.exc_value
+        e = ctx.exception
         self.assertIsInstance(e, ExceptionMock)
         self.assertEqual(e.args[0], v)
 
@@ -3047,8 +3041,14 @@
             pass
         else:
             self.fail("assertRaises() didn't let exception pass through")
-        with self.assertRaises(KeyError):
-            raise KeyError
+        with self.assertRaises(KeyError) as cm:
+            try:
+                raise KeyError
+            except Exception as e:
+                exc = e
+                raise
+        self.assertIs(cm.exception, exc)
+
         with self.assertRaises(KeyError):
             raise KeyError("key")
         try:

Modified: python/branches/py3k/Lib/unittest/case.py
==============================================================================
--- python/branches/py3k/Lib/unittest/case.py	(original)
+++ python/branches/py3k/Lib/unittest/case.py	Mon Feb  8 22:57:48 2010
@@ -99,7 +99,7 @@
         self.expected_regex = expected_regexp
 
     def __enter__(self):
-        pass
+        return self
 
     def __exit__(self, exc_type, exc_value, tb):
         if exc_type is None:
@@ -116,8 +116,8 @@
         if not issubclass(exc_type, self.expected):
             # let unexpected exceptions pass through
             return False
-        #store exception, without traceback, for later retrieval
-        self.exc_value = exc_value.with_traceback(None)
+        # store exception, without traceback, for later retrieval
+        self.exception = exc_value.with_traceback(None)
         if self.expected_regex is None:
             return True
 
@@ -397,12 +397,12 @@
                     do_something()
 
            The context manager keeps a reference to the exception as
-           the exc_value attribute. This allows you to inspect the
+           the 'exception' attribute. This allows you to inspect the
            exception after the assertion::
 
                with self.assertRaises(SomeException) as cm:
                    do_something()
-               the_exception = cm.exc_value
+               the_exception = cm.exception
                self.assertEqual(the_exception.error_code, 3)
         """
         context = _AssertRaisesContext(excClass, self, callableObj)


More information about the Python-checkins mailing list