]> granicus.if.org Git - python/commitdiff
Merged revisions 78116 via svnmerge from
authorMichael Foord <fuzzyman@voidspace.org.uk>
Mon, 8 Feb 2010 23:10:39 +0000 (23:10 +0000)
committerMichael Foord <fuzzyman@voidspace.org.uk>
Mon, 8 Feb 2010 23:10:39 +0000 (23:10 +0000)
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r78116 | michael.foord | 2010-02-08 22:41:16 +0000 (Mon, 08 Feb 2010) | 1 line

  Make assertMultiLineEqual the default for comparing unicode strings.
........

Doc/library/unittest.rst
Lib/test/test_unittest.py
Lib/unittest/case.py

index 20f775cdfcaa2c0a2cf187571f53b6b23dfceb6a..992415de7b3254a5e078da7718bf63822d5421c8 100644 (file)
@@ -690,13 +690,18 @@ Test cases
       *second*.
 
       In addition, if *first* and *second* are the exact same type and one of
-      list, tuple, dict, set, or frozenset or any type that a subclass
-      registers :meth:`addTypeEqualityFunc` the type specific equality function
-      will be called in order to generate a more useful default error message.
+      list, tuple, dict, set, frozenset or str or any type that a subclass
+      registers with :meth:`addTypeEqualityFunc` the type specific equality
+      function will be called in order to generate a more useful default
+      error message.
 
       .. versionchanged:: 3.1
          Added the automatic calling of type specific equality function.
 
+     .. versionchanged:: 3.2
+        :meth:`assertMultiLineEqual` added as the default type equality
+        function for comparing strings.
+
       .. deprecated:: 3.1
          :meth:`failUnlessEqual`.
 
@@ -772,7 +777,8 @@ Test cases
 
       Test that the multiline string *first* is equal to the string *second*.
       When not equal a diff of the two strings highlighting the differences
-      will be included in the error message.
+      will be included in the error message. This method is used by default
+      when comparing strings with :meth:`assertEqual`.
 
       If specified *msg* will be used as the error message on failure.
 
@@ -818,7 +824,8 @@ Test cases
    .. method:: assertSetEqual(set1, set2, msg=None)
 
       Tests that two sets are equal.  If not, an error message is constructed
-      that lists the differences between the sets.
+      that lists the differences between the sets.  This method is used by
+      default when comparing sets or frozensets with :meth:`assertEqual`.
 
       Fails if either of *set1* or *set2* does not have a :meth:`set.difference`
       method.
@@ -831,7 +838,9 @@ Test cases
    .. method:: assertDictEqual(expected, actual, msg=None)
 
       Test that two dictionaries are equal.  If not, an error message is
-      constructed that shows the differences in the dictionaries.
+      constructed that shows the differences in the dictionaries. This
+      method will be used by default to compare dictionaries in
+      calls to :meth:`assertEqual`.
 
       If specified *msg* will be used as the error message on failure.
 
@@ -855,6 +864,8 @@ Test cases
       Tests that two lists or tuples are equal.  If not an error message is
       constructed that shows only the differences between the two.  An error
       is also raised if either of the parameters are of the wrong type.
+      These methods are used by default when comparing lists or tuples with
+      :meth:`assertEqual`.
 
       If specified *msg* will be used as the error message on failure.
 
index c944217b2b3e8d59f15c0d92657c85893af9562f..e5219fdbcbe341cba18123a2e4487b781a974079 100644 (file)
@@ -2795,8 +2795,9 @@ test case
         try:
             self.assertMultiLineEqual(sample_text, revised_sample_text)
         except self.failureException as e:
-            # no fair testing ourself with ourself, use assertEqual..
-            self.assertEqual(sample_text_error, str(e))
+            # no fair testing ourself with ourself, and assertEqual is used for strings
+            # so can't use assertEqual either. Just use assertTrue.
+            self.assertTrue(sample_text_error == str(e))
 
     def testAssertIsNone(self):
         self.assertIsNone(None)
index a4e45aaa688aad4dc3e00b0bbdd5793c678c0add..cf180d7554693e226b0c82a6640a6d1d0f005e31 100644 (file)
@@ -189,6 +189,7 @@ class TestCase(object):
         self.addTypeEqualityFunc(tuple, self.assertTupleEqual)
         self.addTypeEqualityFunc(set, self.assertSetEqual)
         self.addTypeEqualityFunc(frozenset, self.assertSetEqual)
+        self.addTypeEqualityFunc(str, self.assertMultiLineEqual)
 
     def addTypeEqualityFunc(self, typeobj, function):
         """Add a type specific assertEqual style function to compare a type.