From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Mon, 1 May 2023 00:50:01 +0000 (-0700) Subject: [3.11] Improve int test coverage (GH-104024) (#104026) X-Git-Tag: v3.11.4~141 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2be3656855268dcfabec2c55cdb679038db33e29;p=thirdparty%2FPython%2Fcpython.git [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 69bc86cb1aed49db27afc0095e0f4bcd8f1f3983) Co-authored-by: Shantanu <12621235+hauntsaninja@users.noreply.github.com> Co-authored-by: Gregory P. Smith --- diff --git a/Lib/test/test_int.py b/Lib/test/test_int.py index c972b8afb48d..a1c4a04f5e08 100644 --- a/Lib/test/test_int.py +++ b/Lib/test/test_int.py @@ -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'):