]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-94808: Add coverage test for number check (gh-111445)
authorEvan Kohilas <ekohilas@users.noreply.github.com>
Sun, 29 Oct 2023 07:00:19 +0000 (09:00 +0200)
committerGitHub <noreply@github.com>
Sun, 29 Oct 2023 07:00:19 +0000 (07:00 +0000)
Lib/test/test_capi/test_abstract.py
Modules/_testcapi/abstract.c

index eeaef60a8b47b5b4416f095c2e82fb9a48dd0471..687ce1e63768145c2a84f7bf236134f17812a4b4 100644 (file)
@@ -817,6 +817,13 @@ class CAPITest(unittest.TestCase):
         self.assertRaises(TypeError, xtuple, 42)
         self.assertRaises(SystemError, xtuple, NULL)
 
+    def test_number_check(self):
+        number_check = _testcapi.number_check
+        self.assertTrue(number_check(1 + 1j))
+        self.assertTrue(number_check(1))
+        self.assertTrue(number_check(0.5))
+        self.assertFalse(number_check("1 + 1j"))
+
 
 if __name__ == "__main__":
     unittest.main()
index a93477a709042249c3301635fd7219dcb005bfa6..4a9144e66f0fcd71c80aa40b6fb1abfa9b4b219a 100644 (file)
@@ -180,6 +180,12 @@ object_delattrstring(PyObject *self, PyObject *args)
     RETURN_INT(PyObject_DelAttrString(obj, attr_name));
 }
 
+static PyObject *
+number_check(PyObject *self, PyObject *obj)
+{
+    NULLABLE(obj);
+    return PyBool_FromLong(PyNumber_Check(obj));
+}
 
 static PyObject *
 mapping_check(PyObject *self, PyObject *obj)
@@ -623,6 +629,7 @@ static PyMethodDef test_methods[] = {
     {"object_delattr", object_delattr, METH_VARARGS},
     {"object_delattrstring", object_delattrstring, METH_VARARGS},
 
+    {"number_check", number_check, METH_O},
     {"mapping_check", mapping_check, METH_O},
     {"mapping_size", mapping_size, METH_O},
     {"mapping_length", mapping_length, METH_O},