[pypy-commit] pypy cpyext-best_base: add test, fix best_base (amaury)
mattip
noreply at buildbot.pypy.org
Thu Oct 10 00:07:05 CEST 2013
Author: Matti Picus <matti.picus at gmail.com>
Branch: cpyext-best_base
Changeset: r67266:00e1a7288bbb
Date: 2013-10-10 01:03 +0300
http://bitbucket.org/pypy/pypy/changeset/00e1a7288bbb/
Log: add test, fix best_base (amaury)
diff --git a/pypy/module/cpyext/test/test_cpyext.py b/pypy/module/cpyext/test/test_cpyext.py
--- a/pypy/module/cpyext/test/test_cpyext.py
+++ b/pypy/module/cpyext/test/test_cpyext.py
@@ -99,7 +99,7 @@
class LeakCheckingTest(object):
"""Base class for all cpyext tests."""
spaceconfig = dict(usemodules=['cpyext', 'thread', '_rawffi', 'array',
- 'itertools', 'rctime', 'binascii'])
+ 'itertools', 'rctime', 'binascii', 'micronumpy'])
spaceconfig['std.withmethodcache'] = True
enable_leak_checking = True
@@ -196,7 +196,7 @@
assert PyUnicode_GetDefaultEncoding() == 'ascii'
class AppTestCpythonExtensionBase(LeakCheckingTest):
-
+
def setup_class(cls):
cls.space.getbuiltinmodule("cpyext")
from pypy.module.imp.importing import importhook
diff --git a/pypy/module/cpyext/test/test_typeobject.py b/pypy/module/cpyext/test/test_typeobject.py
--- a/pypy/module/cpyext/test/test_typeobject.py
+++ b/pypy/module/cpyext/test/test_typeobject.py
@@ -156,7 +156,7 @@
def __init__(self):
self.foobar = 32
super(UnicodeSubclass2, self).__init__()
-
+
newobj = UnicodeSubclass2()
assert newobj.get_val() == 42
assert newobj.foobar == 32
@@ -358,6 +358,13 @@
assert w_obj is None
assert api.PyErr_Occurred() is None
+ def test_ndarray_ref(self, space, api):
+ w_obj = space.appexec([], """():
+ import numpypy as np
+ return np.int64(2)""")
+ ref = make_ref(space, w_obj)
+ api.Py_DecRef(ref)
+
class AppTestSlots(AppTestCpythonExtensionBase):
def test_some_slots(self):
module = self.import_extension('foo', [
@@ -525,7 +532,7 @@
assert type(it) is type(iter([]))
assert module.tp_iternext(it) == 1
raises(StopIteration, module.tp_iternext, it)
-
+
def test_bool(self):
module = self.import_extension('foo', [
("newInt", "METH_VARARGS",
diff --git a/pypy/module/cpyext/typeobject.py b/pypy/module/cpyext/typeobject.py
--- a/pypy/module/cpyext/typeobject.py
+++ b/pypy/module/cpyext/typeobject.py
@@ -4,7 +4,7 @@
from rpython.rtyper.lltypesystem import rffi, lltype
from rpython.rtyper.annlowlevel import llhelper
from pypy.interpreter.baseobjspace import W_Root, DescrMismatch
-from pypy.objspace.std.typeobject import W_TypeObject
+from pypy.objspace.std.typeobject import W_TypeObject, find_best_base
from pypy.interpreter.typedef import GetSetProperty
from pypy.module.cpyext.api import (
cpython_api, cpython_struct, bootstrap_function, Py_ssize_t, Py_ssize_tP,
@@ -575,6 +575,7 @@
if not bases_w:
return None
+ return find_best_base(space, bases_w)
w_winner = None
w_base = None
for w_base_i in bases_w:
More information about the pypy-commit
mailing list