]> granicus.if.org Git - python/commitdiff
Make assertMultiLineEqual the default for comparing unicode strings.
authorMichael Foord <fuzzyman@voidspace.org.uk>
Mon, 8 Feb 2010 22:41:16 +0000 (22:41 +0000)
committerMichael Foord <fuzzyman@voidspace.org.uk>
Mon, 8 Feb 2010 22:41:16 +0000 (22:41 +0000)
Doc/library/unittest.rst
Lib/test/test_unittest.py
Lib/unittest/case.py

index b1d27d20bc22f6a8db958517aca61179a4d4c210..90f5bec0fc8072ce6117c41e5f0fc89e73b2f54b 100644 (file)
@@ -695,7 +695,7 @@ 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
+      list, tuple, dict, set, frozenset or unicode 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.
 
@@ -777,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 Unicode strings with :meth:`assertEqual`.
 
       If specified *msg* will be used as the error message on failure.
 
@@ -823,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.
@@ -836,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.
 
@@ -860,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 04a7322b236e179353410b49d5ed78785aa12967..0f39085afe1f49195c620bc87a6c461a33ac8ceb 100644 (file)
@@ -2810,8 +2810,9 @@ test case
                 self.assertMultiLineEqual(type_changer(sample_text),
                                           type_changer(revised_sample_text))
             except self.failureException, e:
-                # no fair testing ourself with ourself, use assertEqual..
-                self.assertEqual(sample_text_error, str(e).encode('utf8'))
+                # assertMultiLineEqual is hooked up as the default for
+                # unicode strings - so we can't use it for this check
+                self.assertTrue(sample_text_error == str(e).encode('utf8'))
 
     def testAssertIsNone(self):
         self.assertIsNone(None)
index f3c28447962b065988e4457f70d544621dc691ab..e8ebc90d61f37a928e715dde43265ed99c5604cb 100644 (file)
@@ -176,6 +176,7 @@ class TestCase(object):
         self.addTypeEqualityFunc(tuple, self.assertTupleEqual)
         self.addTypeEqualityFunc(set, self.assertSetEqual)
         self.addTypeEqualityFunc(frozenset, self.assertSetEqual)
+        self.addTypeEqualityFunc(unicode, self.assertMultiLineEqual)
 
     def addTypeEqualityFunc(self, typeobj, function):
         """Add a type specific assertEqual style function to compare a type.