[3.11] Improve int test coverage (GH-104024) (#104026)

Improve int test coverage (GH-104024)

Following discussion in https://discuss.python.org/t/bug-in-int-42/26360/5

This tests some of the things documented in https://github.com/python/cpython/pull/100436

(cherry picked from commit 69bc86cb1a)

Co-authored-by: Shantanu <12621235+hauntsaninja@users.noreply.github.com>
Co-authored-by: Gregory P. Smith <greg@krypto.org>
This commit is contained in:
Miss Islington (bot) 2023-04-30 17:50:01 -07:00 committed by GitHub
parent ba16324b27
commit 2be3656855
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -149,6 +149,8 @@ class IntTestCases(unittest.TestCase):
self.assertEqual(int(' 0O123 ', 0), 83)
self.assertEqual(int(' 0X123 ', 0), 291)
self.assertEqual(int(' 0B100 ', 0), 4)
with self.assertRaises(ValueError):
int('010', 0)
# without base still base 10
self.assertEqual(int('0123'), 123)
@ -215,6 +217,24 @@ class IntTestCases(unittest.TestCase):
self.assertEqual(int('2br45qc', 35), 4294967297)
self.assertEqual(int('1z141z5', 36), 4294967297)
def test_invalid_signs(self):
with self.assertRaises(ValueError):
int('+')
with self.assertRaises(ValueError):
int('-')
with self.assertRaises(ValueError):
int('- 1')
with self.assertRaises(ValueError):
int('+ 1')
with self.assertRaises(ValueError):
int(' + 1 ')
def test_unicode(self):
self.assertEqual(int("१२३४५६७८९1234567890"), 12345678901234567890)
self.assertEqual(int('١٢٣٤٥٦٧٨٩٠'), 1234567890)
self.assertEqual(int("१२३४५६७८९1234567890", 0), 12345678901234567890)
self.assertEqual(int('١٢٣٤٥٦٧٨٩٠', 0), 1234567890)
def test_underscores(self):
for lit in VALID_UNDERSCORE_LITERALS:
if any(ch in lit for ch in '.eEjJ'):