[Python-3000-checkins] r57569 - python/branches/py3k/Lib/test/test_builtin.py python/branches/py3k/Lib/test/test_unicode.py

eric.smith python-3000-checkins at python.org
Mon Aug 27 21:07:22 CEST 2007


Author: eric.smith
Date: Mon Aug 27 21:07:22 2007
New Revision: 57569

Modified:
   python/branches/py3k/Lib/test/test_builtin.py
   python/branches/py3k/Lib/test/test_unicode.py
Log:
Additional test for formatting code.

Modified: python/branches/py3k/Lib/test/test_builtin.py
==============================================================================
--- python/branches/py3k/Lib/test/test_builtin.py	(original)
+++ python/branches/py3k/Lib/test/test_builtin.py	Mon Aug 27 21:07:22 2007
@@ -541,7 +541,8 @@
         self.assertEqual(format(-3.1415e-104, ""), str(-3.1415e-104))
         self.assertEqual(format(object, ""), str(object))
 
-        #self.assertRaises(TypeError, format, H(), "")
+        # TypeError because self.__format__ returns the wrong type
+        self.assertRaises(TypeError, format, H(), "")
 
     def test_getattr(self):
         import sys

Modified: python/branches/py3k/Lib/test/test_unicode.py
==============================================================================
--- python/branches/py3k/Lib/test/test_unicode.py	(original)
+++ python/branches/py3k/Lib/test/test_unicode.py	Mon Aug 27 21:07:22 2007
@@ -424,6 +424,10 @@
             def __format__(self, format_spec):
                 return 1.0
 
+        class I(datetime.date):
+            def __format__(self, format_spec):
+                return self.strftime(format_spec)
+
 
         self.assertEqual(''.format(), '')
         self.assertEqual('abc'.format(), 'abc')
@@ -504,9 +508,6 @@
         self.assertEqual('{0!r:}'.format('Hello'), "'Hello'")
         self.assertEqual('{0!r}'.format(F('Hello')), 'F(Hello)')
 
-        # XXX should pass, but currently don't
-        # format(object, "")
-
         # test fallback to object.__format__
         self.assertEqual('{0}'.format({}), '{}')
         self.assertEqual('{0}'.format([]), '[]')
@@ -518,6 +519,11 @@
         self.assertEqual('{0:>15s}'.format(G('data')), ' string is data')
         self.assertEqual('{0!s}'.format(G('data')), 'string is data')
 
+        self.assertEqual("{0:date: %Y-%m-%d}".format(I(year=2007,
+                                                       month=8,
+                                                       day=27)),
+                         "date: 2007-08-27")
+
         # string format specifiers
         self.assertEqual('{0:}'.format('a'), 'a')
 


More information about the Python-3000-checkins mailing list