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

afa at codespeak.net afa at codespeak.net
Mon Mar 22 15:02:18 CET 2010


Author: afa
Date: Mon Mar 22 15:02:16 2010
New Revision: 72558

Modified:
   pypy/trunk/pypy/module/cpyext/test/test_boolobject.py
   pypy/trunk/pypy/module/cpyext/test/test_floatobject.py
   pypy/trunk/pypy/module/cpyext/test/test_stringobject.py
Log:
use the new function to create modules


Modified: pypy/trunk/pypy/module/cpyext/test/test_boolobject.py
==============================================================================
--- pypy/trunk/pypy/module/cpyext/test/test_boolobject.py	(original)
+++ pypy/trunk/pypy/module/cpyext/test/test_boolobject.py	Mon Mar 22 15:02:16 2010
@@ -5,61 +5,41 @@
 
 class AppTestBoolObject(AppTestCpythonExtensionBase):
     def test_boolobject(self):
-        import sys
-        init = """
-        if (Py_IsInitialized())
-            Py_InitModule("foo", methods);
-        """
-        body = """
-        static PyObject* foo_get_true(PyObject* self, PyObject *args)
-        {
-            Py_RETURN_TRUE;
-        }
-        static PyObject* foo_get_false(PyObject* self, PyObject *args)
-        {
-            Py_RETURN_FALSE;
-        }
-        static PyObject* foo_test_FromLong(PyObject* self, PyObject *args)
-        {
-            int i;
-            for(i=-3; i<3; i++)
-            {
-                PyObject* obj = PyBool_FromLong(i);
-                PyObject* expected = (i ? Py_True : Py_False);
-                
-                if(obj != expected)
-                {
-                    Py_DECREF(obj);
-                    Py_RETURN_FALSE;
-                }
-                Py_DECREF(obj);
-            }
-            Py_RETURN_TRUE;
-        }
-        static PyObject* foo_test_Check(PyObject* self, PyObject *args)
-        {
-            int result = 0;
-            PyObject* f = PyFloat_FromDouble(1.0);
-            
-            if(PyBool_Check(Py_True) &&
-                PyBool_Check(Py_False) &&
-                !PyBool_Check(f)) 
-            {
-                result = 1;
-            }
-            Py_DECREF(f);
-            return PyBool_FromLong(result);
-        }
-        static PyMethodDef methods[] = {
-            { "get_true", foo_get_true, METH_NOARGS },
-            { "get_false", foo_get_false, METH_NOARGS },
-            { "test_FromLong", foo_test_FromLong, METH_NOARGS },
-            { "test_Check", foo_test_Check, METH_NOARGS },
-            { NULL }
-        };
-        """
-        module = self.import_module(name='foo', init=init, body=body)
-        assert 'foo' in sys.modules
+        module = self.import_extension('foo', [
+            ("get_true", "METH_NOARGS",  "Py_RETURN_TRUE;"),
+            ("get_false", "METH_NOARGS", "Py_RETURN_FALSE;"),
+            ("test_FromLong", "METH_NOARGS",
+             """
+                 int i;
+                 for(i=-3; i<3; i++)
+                 {
+                     PyObject* obj = PyBool_FromLong(i);
+                     PyObject* expected = (i ? Py_True : Py_False);
+
+                     if(obj != expected)
+                     {
+                         Py_DECREF(obj);
+                         Py_RETURN_FALSE;
+                     }
+                     Py_DECREF(obj);
+                 }
+                 Py_RETURN_TRUE;
+             """),
+            ("test_Check", "METH_NOARGS",
+             """
+                 int result = 0;
+                 PyObject* f = PyFloat_FromDouble(1.0);
+
+                 if(PyBool_Check(Py_True) &&
+                    PyBool_Check(Py_False) &&
+                    !PyBool_Check(f))
+                 {
+                     result = 1;
+                 }
+                 Py_DECREF(f);
+                 return PyBool_FromLong(result);
+             """),
+            ])
         assert module.get_true() == True
         assert module.get_false() == False
         assert module.test_FromLong() == True

Modified: pypy/trunk/pypy/module/cpyext/test/test_floatobject.py
==============================================================================
--- pypy/trunk/pypy/module/cpyext/test/test_floatobject.py	(original)
+++ pypy/trunk/pypy/module/cpyext/test/test_floatobject.py	Mon Mar 22 15:02:16 2010
@@ -5,30 +5,18 @@
 
 class AppTestFloatObject(AppTestCpythonExtensionBase):
     def test_floatobject(self):
-        import sys
-        init = """
-        if (Py_IsInitialized())
-            Py_InitModule("foo", methods);
-        """
-        body = """
-        static PyObject* foo_FromDouble(PyObject* self, PyObject *args)
-        {
-            return PyFloat_FromDouble(3.14);
-        }
-        static PyObject* foo_AsDouble(PyObject* self, PyObject *args)
-        {
-            PyObject* obj = PyFloat_FromDouble(23.45);
-            double d = PyFloat_AsDouble(obj);
-            Py_DECREF(obj);
-            return PyFloat_FromDouble(d);
-        }
-        static PyMethodDef methods[] = {
-            { "FromDouble", foo_FromDouble, METH_NOARGS },
-            { "AsDouble", foo_AsDouble, METH_NOARGS },
-            { NULL }
-        };
-        """
-        module = self.import_module(name='foo', init=init, body=body)
-        assert 'foo' in sys.modules
+        module = self.import_extension('foo', [
+            ("FromDouble", "METH_NOARGS",
+             """
+                 return PyFloat_FromDouble(3.14);
+             """),
+            ("AsDouble", "METH_NOARGS",
+             """
+                 PyObject* obj = PyFloat_FromDouble(23.45);
+                 double d = PyFloat_AsDouble(obj);
+                 Py_DECREF(obj);
+                 return PyFloat_FromDouble(d);
+             """),
+            ])
         assert module.FromDouble() == 3.14
         assert module.AsDouble() == 23.45

Modified: pypy/trunk/pypy/module/cpyext/test/test_stringobject.py
==============================================================================
--- pypy/trunk/pypy/module/cpyext/test/test_stringobject.py	(original)
+++ pypy/trunk/pypy/module/cpyext/test/test_stringobject.py	Mon Mar 22 15:02:16 2010
@@ -38,4 +38,4 @@
         assert module.get_hello1() == 'Hello world'
         assert module.get_hello2() == 'Hello world'
         assert module.test_Size()
-        raises(TypeError, "module.test_Size_exception()")
+        raises(TypeError, module.test_Size_exception)



More information about the Pypy-commit mailing list