[pypy-commit] pypy default: Test that tp_basicsize is correctly set (fails on py3.5)

rlamy pypy.commits at gmail.com
Fri Apr 20 12:13:57 EDT 2018


Author: Ronan Lamy <ronan.lamy at gmail.com>
Branch: 
Changeset: r94396:2a9fc2de357a
Date: 2018-04-20 17:12 +0100
http://bitbucket.org/pypy/pypy/changeset/2a9fc2de357a/

Log:	Test that tp_basicsize is correctly set (fails on py3.5)

diff --git a/pypy/module/cpyext/test/test_datetime.py b/pypy/module/cpyext/test/test_datetime.py
--- a/pypy/module/cpyext/test/test_datetime.py
+++ b/pypy/module/cpyext/test/test_datetime.py
@@ -1,3 +1,5 @@
+import pytest
+
 from pypy.module.cpyext.test.test_cpyext import AppTestCpythonExtensionBase
 from pypy.module.cpyext.test.test_api import BaseApiTest
 from pypy.module.cpyext.cdatetime import *
@@ -82,6 +84,14 @@
         date = datetime.datetime.fromtimestamp(0)
         assert space.unwrap(space.str(w_date)) == str(date)
 
+    @pytest.mark.parametrize('name', ['Time', 'DateTime', 'Date', 'Delta'])
+    def test_basicsize(self, space, name):
+        datetime = _PyDateTime_Import(space)
+        py_size = getattr(datetime, "c_%sType" % name).c_tp_basicsize
+        c_size = rffi.sizeof(cts.gettype("PyDateTime_%s" % name))
+        assert py_size == c_size
+
+
 class AppTestDatetime(AppTestCpythonExtensionBase):
     def test_CAPI(self):
         module = self.import_extension('foo', [
@@ -271,9 +281,9 @@
                     6, 6, 6, 6, args, PyDateTimeAPI->TimeType);
              """),
             ("datetime_with_tzinfo", "METH_O",
-             """ 
+             """
                  PyObject * obj;
-                 int tzrefcnt = args->ob_refcnt; 
+                 int tzrefcnt = args->ob_refcnt;
                  PyDateTime_IMPORT;
                  obj = PyDateTimeAPI->DateTime_FromDateAndTime(
                     2000, 6, 6, 6, 6, 6, 6, args,
@@ -291,7 +301,7 @@
                     return NULL;
                 }
                 return obj;
-                
+
              """),
         ], prologue='#include "datetime.h"\n')
         from datetime import tzinfo, datetime, timedelta, time
@@ -339,4 +349,4 @@
         assert module.checks(o) == (True,) * 3 + (False,) * 7 # isinstance(datetime, date)
         o = tzinfo()
         assert module.checks(o) == (False,) * 8 + (True,) * 2
-        
+


More information about the pypy-commit mailing list