mirror of
https://github.com/python/cpython.git
synced 2025-07-30 06:34:15 +00:00
Issue 1742669. Now %d accepts very big float numbers.
Thanks Gabriel Genellina.
This commit is contained in:
parent
b93e7d16d5
commit
c11cecf3d0
4 changed files with 118 additions and 32 deletions
|
@ -1033,7 +1033,14 @@ class MixinStrUnicodeUserStringTest:
|
|||
# unicode raises ValueError, str raises OverflowError
|
||||
self.checkraises((ValueError, OverflowError), '%c', '__mod__', ordinal)
|
||||
|
||||
longvalue = sys.maxint + 10L
|
||||
slongvalue = str(longvalue)
|
||||
if slongvalue[-1] in ("L","l"): slongvalue = slongvalue[:-1]
|
||||
self.checkequal(' 42', '%3ld', '__mod__', 42)
|
||||
self.checkequal('42', '%d', '__mod__', 42L)
|
||||
self.checkequal('42', '%d', '__mod__', 42.0)
|
||||
self.checkequal(slongvalue, '%d', '__mod__', longvalue)
|
||||
self.checkcall('%d', '__mod__', float(longvalue))
|
||||
self.checkequal('0042.00', '%07.2f', '__mod__', 42)
|
||||
self.checkequal('0042.00', '%07.2F', '__mod__', 42)
|
||||
|
||||
|
@ -1043,6 +1050,8 @@ class MixinStrUnicodeUserStringTest:
|
|||
self.checkraises(TypeError, '%c', '__mod__', (None,))
|
||||
self.checkraises(ValueError, '%(foo', '__mod__', {})
|
||||
self.checkraises(TypeError, '%(foo)s %(bar)s', '__mod__', ('foo', 42))
|
||||
self.checkraises(TypeError, '%d', '__mod__', "42") # not numeric
|
||||
self.checkraises(TypeError, '%d', '__mod__', (42+0j)) # no int/long conversion provided
|
||||
|
||||
# argument names with properly nested brackets are supported
|
||||
self.checkequal('bar', '%((foo))s', '__mod__', {'(foo)': 'bar'})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue