[pypy-svn] r74963 - pypy/trunk/pypy/module/cpyext/test

afa at codespeak.net afa at codespeak.net
Mon May 31 10:59:42 CEST 2010


Author: afa
Date: Mon May 31 10:59:41 2010
New Revision: 74963

Modified:
   pypy/trunk/pypy/module/cpyext/test/test_object.py
Log:
Fix test: PyObject_TypeCheck is now a macro.


Modified: pypy/trunk/pypy/module/cpyext/test/test_object.py
==============================================================================
--- pypy/trunk/pypy/module/cpyext/test/test_object.py	(original)
+++ pypy/trunk/pypy/module/cpyext/test/test_object.py	Mon May 31 10:59:41 2010
@@ -127,17 +127,6 @@
         assert api.PyErr_Occurred() is space.w_SystemError
         api.PyErr_Clear()
         
-    def test_TypeCheck(self, space, api):
-        assert api.PyObject_TypeCheck(space.wrap(1), space.w_int)
-        assert api.PyObject_TypeCheck(space.wrap(1), api.PyInt_Type)
-        assert api.PyObject_TypeCheck(space.wrap('foo'), space.w_str)
-        assert api.PyObject_TypeCheck(space.wrap('foo'), api.PyString_Type)
-        assert api.PyObject_TypeCheck(space.wrap('foo'), space.w_object)
-        assert api.PyObject_TypeCheck(space.wrap(1L), api.PyLong_Type)
-        assert api.PyObject_TypeCheck(space.wrap(True), api.PyBool_Type)
-        assert api.PyObject_TypeCheck(space.wrap(1.2), api.PyFloat_Type)
-        assert api.PyObject_TypeCheck(space.w_int, api.PyType_Type)
-
     def test_IsInstance(self, space, api):
         assert api.PyObject_IsInstance(space.wrap(1), space.w_int) == 1
         assert api.PyObject_IsInstance(space.wrap(1), space.w_float) == 0
@@ -203,11 +192,27 @@
         space.call_method(w_file, "close")
         assert (udir / "_test_file").read() == "text"
 
-class AppTestObjectPrint(AppTestCpythonExtensionBase):
+class AppTestObject(AppTestCpythonExtensionBase):
     def setup_class(cls):
         AppTestCpythonExtensionBase.setup_class.im_func(cls)
         cls.w_tmpname = cls.space.wrap(str(py.test.ensuretemp("out", dir=0)))
 
+    def test_TypeCheck(self):
+        module = self.import_extension('foo', [
+            ("typecheck", "METH_VARARGS",
+             """
+                 PyObject *obj = PyTuple_GET_ITEM(args, 0);
+                 PyObject *type = PyTuple_GET_ITEM(args, 1);
+                 return PyBool_FromLong(PyObject_TypeCheck(obj, type));
+             """)])
+        assert module.typecheck(1, int)
+        assert module.typecheck('foo', str)
+        assert module.typecheck('foo', object)
+        assert module.typecheck(1L, long)
+        assert module.typecheck(True, bool)
+        assert module.typecheck(1.2, float)
+        assert module.typecheck(int, type)
+
     def test_print(self):
         module = self.import_extension('foo', [
             ("dump", "METH_VARARGS",



More information about the Pypy-commit mailing list