mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
bpo-38643: Raise SystemError instead of crashing when PyNumber_ToBase is called with invalid base. (GH-18863)
This commit is contained in:
parent
413f01352a
commit
e5ccc94bbb
4 changed files with 36 additions and 9 deletions
|
@ -502,6 +502,20 @@ class CAPITest(unittest.TestCase):
|
|||
# Test that subtype_dealloc decref the newly assigned __class__ only once
|
||||
self.assertEqual(new_type_refcnt, sys.getrefcount(_testcapi.HeapCTypeSubclass))
|
||||
|
||||
def test_pynumber_tobase(self):
|
||||
from _testcapi import pynumber_tobase
|
||||
self.assertEqual(pynumber_tobase(123, 2), '0b1111011')
|
||||
self.assertEqual(pynumber_tobase(123, 8), '0o173')
|
||||
self.assertEqual(pynumber_tobase(123, 10), '123')
|
||||
self.assertEqual(pynumber_tobase(123, 16), '0x7b')
|
||||
self.assertEqual(pynumber_tobase(-123, 2), '-0b1111011')
|
||||
self.assertEqual(pynumber_tobase(-123, 8), '-0o173')
|
||||
self.assertEqual(pynumber_tobase(-123, 10), '-123')
|
||||
self.assertEqual(pynumber_tobase(-123, 16), '-0x7b')
|
||||
self.assertRaises(TypeError, pynumber_tobase, 123.0, 10)
|
||||
self.assertRaises(TypeError, pynumber_tobase, '123', 10)
|
||||
self.assertRaises(SystemError, pynumber_tobase, 123, 0)
|
||||
|
||||
|
||||
class TestPendingCalls(unittest.TestCase):
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue