[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