Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 739e2ad

Browse files
committed
Additional test for formatting code.
1 parent 9c62772 commit 739e2ad

2 files changed

Lines changed: 11 additions & 4 deletions

File tree

Lib/test/test_builtin.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -541,7 +541,8 @@ def __format__(self, format_spec):
541541
self.assertEqual(format(-3.1415e-104, ""), str(-3.1415e-104))
542542
self.assertEqual(format(object, ""), str(object))
543543

544-
#self.assertRaises(TypeError, format, H(), "")
544+
# TypeError because self.__format__ returns the wrong type
545+
self.assertRaises(TypeError, format, H(), "")
545546

546547
def test_getattr(self):
547548
import sys

Lib/test/test_unicode.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -424,6 +424,10 @@ class H:
424424
def __format__(self, format_spec):
425425
return 1.0
426426

427+
class I(datetime.date):
428+
def __format__(self, format_spec):
429+
return self.strftime(format_spec)
430+
427431

428432
self.assertEqual(''.format(), '')
429433
self.assertEqual('abc'.format(), 'abc')
@@ -504,9 +508,6 @@ def __format__(self, format_spec):
504508
self.assertEqual('{0!r:}'.format('Hello'), "'Hello'")
505509
self.assertEqual('{0!r}'.format(F('Hello')), 'F(Hello)')
506510

507-
# XXX should pass, but currently don't
508-
# format(object, "")
509-
510511
# test fallback to object.__format__
511512
self.assertEqual('{0}'.format({}), '{}')
512513
self.assertEqual('{0}'.format([]), '[]')
@@ -518,6 +519,11 @@ def __format__(self, format_spec):
518519
self.assertEqual('{0:>15s}'.format(G('data')), ' string is data')
519520
self.assertEqual('{0!s}'.format(G('data')), 'string is data')
520521

522+
self.assertEqual("{0:date: %Y-%m-%d}".format(I(year=2007,
523+
month=8,
524+
day=27)),
525+
"date: 2007-08-27")
526+
521527
# string format specifiers
522528
self.assertEqual('{0:}'.format('a'), 'a')
523529

0 commit comments

Comments
 (0)