mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
Issue #6902: Fix problem with built-in types format incorrectly with 0 padding.
This commit is contained in:
parent
ae3db0a12b
commit
87bcb243ac
3 changed files with 42 additions and 4 deletions
|
@ -435,6 +435,17 @@ class TypesTests(unittest.TestCase):
|
|||
self.assertEqual(value.__format__(format_spec),
|
||||
float(value).__format__(format_spec))
|
||||
|
||||
# Issue 6902
|
||||
test(123456, "0<20", '12345600000000000000')
|
||||
test(123456, "1<20", '12345611111111111111')
|
||||
test(123456, "*<20", '123456**************')
|
||||
test(123456, "0>20", '00000000000000123456')
|
||||
test(123456, "1>20", '11111111111111123456')
|
||||
test(123456, "*>20", '**************123456')
|
||||
test(123456, "0=20", '00000000000000123456')
|
||||
test(123456, "1=20", '11111111111111123456')
|
||||
test(123456, "*=20", '**************123456')
|
||||
|
||||
def test_long__format__(self):
|
||||
def test(i, format_spec, result):
|
||||
# make sure we're not accidentally checking ints
|
||||
|
@ -532,6 +543,16 @@ class TypesTests(unittest.TestCase):
|
|||
for value in [0L, 1L, -1L, 100L, -100L, 1234567890L, -1234567890L]:
|
||||
self.assertEqual(value.__format__(format_spec),
|
||||
float(value).__format__(format_spec))
|
||||
# Issue 6902
|
||||
test(123456L, "0<20", '12345600000000000000')
|
||||
test(123456L, "1<20", '12345611111111111111')
|
||||
test(123456L, "*<20", '123456**************')
|
||||
test(123456L, "0>20", '00000000000000123456')
|
||||
test(123456L, "1>20", '11111111111111123456')
|
||||
test(123456L, "*>20", '**************123456')
|
||||
test(123456L, "0=20", '00000000000000123456')
|
||||
test(123456L, "1=20", '11111111111111123456')
|
||||
test(123456L, "*=20", '**************123456')
|
||||
|
||||
@run_with_locale('LC_NUMERIC', 'en_US.UTF8')
|
||||
def test_float__format__locale(self):
|
||||
|
@ -689,6 +710,17 @@ class TypesTests(unittest.TestCase):
|
|||
self.assertRaises(ValueError, format, 0.0, '#')
|
||||
self.assertRaises(ValueError, format, 0.0, '#20f')
|
||||
|
||||
# Issue 6902
|
||||
test(12345.6, "0<20", '12345.60000000000000')
|
||||
test(12345.6, "1<20", '12345.61111111111111')
|
||||
test(12345.6, "*<20", '12345.6*************')
|
||||
test(12345.6, "0>20", '000000000000012345.6')
|
||||
test(12345.6, "1>20", '111111111111112345.6')
|
||||
test(12345.6, "*>20", '*************12345.6')
|
||||
test(12345.6, "0=20", '000000000000012345.6')
|
||||
test(12345.6, "1=20", '111111111111112345.6')
|
||||
test(12345.6, "*=20", '*************12345.6')
|
||||
|
||||
def test_format_spec_errors(self):
|
||||
# int, float, and string all share the same format spec
|
||||
# mini-language parser.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue