Skip to content

Commit 380157d

Browse files
Address review comments.
1 parent cb7ea11 commit 380157d

File tree

3 files changed

+36
-12
lines changed

3 files changed

+36
-12
lines changed

Lib/test/test_bytes.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -799,7 +799,7 @@ def __int__(self):
799799
]
800800

801801
for msg, format_bytes, value in exceptions_params:
802-
with self.assertRaisesRegex(TypeError, msg):
802+
with self.assertRaisesRegex(TypeError, 'format argument: ' + msg):
803803
operator.mod(format_bytes, value)
804804

805805
def test_memory_leak_gh_140939(self):

Lib/test/test_str.py

Lines changed: 34 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1578,17 +1578,40 @@ def __int__(self):
15781578
self.assertEqual('%X' % letter_m, '6D')
15791579
self.assertEqual('%o' % letter_m, '155')
15801580
self.assertEqual('%c' % letter_m, 'm')
1581-
self.assertRaisesRegex(TypeError, '%x requires an integer, not float', operator.mod, '%x', 3.14)
1582-
self.assertRaisesRegex(TypeError, '%X requires an integer, not float', operator.mod, '%X', 2.11)
1583-
self.assertRaisesRegex(TypeError, '%o requires an integer, not float', operator.mod, '%o', 1.79)
1584-
self.assertRaisesRegex(TypeError, r'%x requires an integer, not .*\.PseudoFloat', operator.mod, '%x', pi)
1585-
self.assertRaisesRegex(TypeError, '%x requires an integer, not complex', operator.mod, '%x', 3j)
1586-
self.assertRaisesRegex(TypeError, '%X requires an integer, not complex', operator.mod, '%X', 2j)
1587-
self.assertRaisesRegex(TypeError, '%o requires an integer, not complex', operator.mod, '%o', 1j)
1588-
self.assertRaisesRegex(TypeError, '%u requires a real number, not complex', operator.mod, '%u', 3j)
1589-
self.assertRaisesRegex(TypeError, '%i requires a real number, not complex', operator.mod, '%i', 2j)
1590-
self.assertRaisesRegex(TypeError, '%d requires a real number, not complex', operator.mod, '%d', 1j)
1591-
self.assertRaisesRegex(TypeError, r'%c requires an integer or a unicode character, not .*\.PseudoFloat', operator.mod, '%c', pi)
1581+
with self.assertRaisesRegex(TypeError,
1582+
'format argument: %x requires an integer, not float'):
1583+
'%x' % 3.14
1584+
with self.assertRaisesRegex(TypeError,
1585+
'format argument: %X requires an integer, not float'):
1586+
'%X' % 2.11
1587+
with self.assertRaisesRegex(TypeError,
1588+
'format argument: %o requires an integer, not float'):
1589+
'%o' % 1.79
1590+
with self.assertRaisesRegex(TypeError,
1591+
r'format argument: %x requires an integer, not .*\.PseudoFloat'):
1592+
'%x' % pi
1593+
with self.assertRaisesRegex(TypeError,
1594+
'format argument: %x requires an integer, not complex'):
1595+
'%x' % 3j
1596+
with self.assertRaisesRegex(TypeError,
1597+
'format argument: %X requires an integer, not complex'):
1598+
'%X' % 2j
1599+
with self.assertRaisesRegex(TypeError,
1600+
'format argument: %o requires an integer, not complex'):
1601+
'%o' % 1j
1602+
with self.assertRaisesRegex(TypeError,
1603+
'format argument: %u requires a real number, not complex'):
1604+
'%u' % 3j
1605+
with self.assertRaisesRegex(TypeError,
1606+
'format argument: %i requires a real number, not complex'):
1607+
'%i' % 2j
1608+
with self.assertRaisesRegex(TypeError,
1609+
'format argument: %d requires a real number, not complex'):
1610+
'%d' % 1j
1611+
with self.assertRaisesRegex(TypeError,
1612+
r'format argument: %c requires an integer or a unicode character, '
1613+
r'not .*\.PseudoFloat'):
1614+
'%c' % pi
15921615

15931616
class RaisingNumber:
15941617
def __int__(self):

Objects/unicode_format.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ struct unicode_format_arg_t {
7777
};
7878

7979

80+
// Use FORMAT_ERROR("...%s", "") when there is no arguments.
8081
#define FORMAT_ERROR(EXC, FMT, ...) do { \
8182
if (arg->key != NULL) { \
8283
PyErr_Format((EXC), "format argument %R: " FMT, \

0 commit comments

Comments
 (0)