summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_capi/test_long.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_capi/test_long.py')
-rw-r--r--Lib/test/test_capi/test_long.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/Lib/test/test_capi/test_long.py b/Lib/test/test_capi/test_long.py
index 83f894e..06a29b5 100644
--- a/Lib/test/test_capi/test_long.py
+++ b/Lib/test/test_capi/test_long.py
@@ -721,6 +721,22 @@ class LongTests(unittest.TestCase):
self.assertEqual(expect_u, fromnativebytes(v_be, n, 4, 1),
f"PyLong_FromNativeBytes(buffer, {n}, <big|unsigned>)")
+ def test_long_getsign(self):
+ # Test PyLong_GetSign()
+ getsign = _testcapi.pylong_getsign
+ self.assertEqual(getsign(1), 1)
+ self.assertEqual(getsign(123456), 1)
+ self.assertEqual(getsign(-2), -1)
+ self.assertEqual(getsign(0), 0)
+ self.assertEqual(getsign(True), 1)
+ self.assertEqual(getsign(IntSubclass(-11)), -1)
+ self.assertEqual(getsign(False), 0)
+
+ self.assertRaises(TypeError, getsign, 1.0)
+ self.assertRaises(TypeError, getsign, Index(123))
+
+ # CRASHES getsign(NULL)
+
if __name__ == "__main__":
unittest.main()