mirror of
https://github.com/python/cpython.git
synced 2025-09-13 04:08:37 +00:00
gh-131015: Add test for bytes formatting errors (#131881)
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
This commit is contained in:
parent
06a110f522
commit
05557788f3
1 changed files with 29 additions and 2 deletions
|
@ -772,8 +772,35 @@ class BaseBytesTest:
|
|||
check(b'%i%b %*.*b', (10, b'3', 5, 3, b'abc',), b'103 abc')
|
||||
check(b'%c', b'a', b'a')
|
||||
|
||||
self.assertRaisesRegex(TypeError, '%i format: a real number is required, not complex', operator.mod, '%i', 2j)
|
||||
self.assertRaisesRegex(TypeError, '%d format: a real number is required, not complex', operator.mod, '%d', 2j)
|
||||
class PseudoFloat:
|
||||
def __init__(self, value):
|
||||
self.value = float(value)
|
||||
def __int__(self):
|
||||
return int(self.value)
|
||||
|
||||
pi = PseudoFloat(3.1415)
|
||||
|
||||
exceptions_params = [
|
||||
('%x format: an integer is required, not float', b'%x', 3.14),
|
||||
('%X format: an integer is required, not float', b'%X', 2.11),
|
||||
('%o format: an integer is required, not float', b'%o', 1.79),
|
||||
('%x format: an integer is required, not PseudoFloat', b'%x', pi),
|
||||
('%x format: an integer is required, not complex', b'%x', 3j),
|
||||
('%X format: an integer is required, not complex', b'%X', 2j),
|
||||
('%o format: an integer is required, not complex', b'%o', 1j),
|
||||
('%u format: a real number is required, not complex', b'%u', 3j),
|
||||
('%i format: a real number is required, not complex', b'%i', 2j),
|
||||
('%d format: a real number is required, not complex', b'%d', 2j),
|
||||
(
|
||||
r'%c requires an integer in range\(256\)'
|
||||
r' or a single byte, not .*\.PseudoFloat',
|
||||
b'%c', pi
|
||||
),
|
||||
]
|
||||
|
||||
for msg, format_bytes, value in exceptions_params:
|
||||
with self.assertRaisesRegex(TypeError, msg):
|
||||
operator.mod(format_bytes, value)
|
||||
|
||||
def test_imod(self):
|
||||
b = self.type2test(b'hello, %b!')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue