]> granicus.if.org Git - python/commitdiff
Improving docstrings in unittest.TestCase
authorMichael Foord <fuzzyman@voidspace.org.uk>
Fri, 5 Feb 2010 22:55:09 +0000 (22:55 +0000)
committerMichael Foord <fuzzyman@voidspace.org.uk>
Fri, 5 Feb 2010 22:55:09 +0000 (22:55 +0000)
Lib/unittest/case.py

index db51e6dcea5c251a7a60055806c221e75549a6e2..b058b49366abe7ddccaaa87000a3bba022f73bd7 100644 (file)
@@ -218,10 +218,6 @@ class TestCase(object):
         """Returns both the test method name and first line of its docstring.
 
         If no docstring is given, only returns the method name.
-
-        This method overrides unittest.TestCase.shortDescription(), which
-        only returns the first line of the docstring, obscuring the name
-        of the test upon failure.
         """
         desc = str(self)
         doc_first_line = None
@@ -384,8 +380,17 @@ class TestCase(object):
            If called with callableObj omitted or None, will return a
            context object used like this::
 
-                with self.assertRaises(some_error_class):
+                with self.assertRaises(SomeException):
                     do_something()
+
+           The context manager keeps a reference to the exception as
+           the exc_value attribute. This allows you to inspect the
+           exception after the assertion::
+
+               with self.assertRaises(SomeException) as cm:
+                   do_something()
+               the_exception = cm.exc_value
+               self.assertEquals(the_exception.error_code, 3)
         """
         context = _AssertRaisesContext(excClass, self)
         if callableObj is None:
@@ -733,6 +738,11 @@ class TestCase(object):
 
         Raises with an error message listing which elements of expected_seq
         are missing from actual_seq and vice versa if any.
+
+        Duplicate elements are ignored when comparing *expected_seq* and
+        *actual_seq*. It is the equivalent of ``assertEqual(set(expected),
+        set(actual))`` but it works with sequences of unhashable objects as
+        well.
         """
         try:
             expected = set(expected_seq)