Author: Matti Picus <[email protected]>
Branch: pypy-pyarray
Changeset: r67051:c1a7865243c0
Date: 2013-09-22 09:32 +0300
http://bitbucket.org/pypy/pypy/changeset/c1a7865243c0/
Log: fix test, change implementation for pendatic exception string,
improve test
diff --git a/pypy/module/cpyext/ndarrayobject.py
b/pypy/module/cpyext/ndarrayobject.py
--- a/pypy/module/cpyext/ndarrayobject.py
+++ b/pypy/module/cpyext/ndarrayobject.py
@@ -171,8 +171,16 @@
@cpython_api([PyObject, Py_ssize_t, Py_ssize_t, Py_ssize_t], PyObject)
def _PyArray_FromObject(space, w_obj, typenum, min_depth, max_depth):
- return _PyArray_FromAny(space, w_obj, typenum, min_depth, max_depth,
NPY_BEHAVED);
-
+ try:
+ return _PyArray_FromAny(space, w_obj, typenum, min_depth, max_depth,
+ 0, None);
+ except OperationError, e:
+ if e.match(space, space.w_NotImplementedError):
+ errstr = space.str_w(e.get_w_value(space))
+ errstr = errstr.replace('FromAny','FromObject')
+ raise OperationError(space.w_NotImplementedError, space.wrap(
+ errstr))
+ raise
def get_shape_and_dtype(space, nd, dims, typenum):
shape = []
diff --git a/pypy/module/cpyext/test/test_api.py
b/pypy/module/cpyext/test/test_api.py
--- a/pypy/module/cpyext/test/test_api.py
+++ b/pypy/module/cpyext/test/test_api.py
@@ -46,7 +46,7 @@
raise Exception("DID NOT RAISE")
if getattr(space, 'w_' + expected_exc.__name__) is not operror.w_type:
raise Exception("Wrong exception")
- state.clear_exception()
+ return state.clear_exception()
def setup_method(self, func):
freeze_refcnts(self)
diff --git a/pypy/module/cpyext/test/test_ndarrayobject.py
b/pypy/module/cpyext/test/test_ndarrayobject.py
--- a/pypy/module/cpyext/test/test_ndarrayobject.py
+++ b/pypy/module/cpyext/test/test_ndarrayobject.py
@@ -96,10 +96,11 @@
def test_FromObject(self, space, api):
a = array(space, [10, 5, 3])
- assert api._PyArray_FromObject(a, NULL, 0, 0, 0, NULL) is a
- self.raises(space, api, NotImplementedError, api._PyArray_FromObject,
- space.wrap(a), space.w_None, space.wrap(0),
- space.wrap(3), space.wrap(0), space.w_None)
+ assert api._PyArray_FromObject(a, None, 0, 0) is a
+ exc = self.raises(space, api, NotImplementedError,
api._PyArray_FromObject,
+ space.wrap(a), space.wrap(11), space.wrap(0),
+ space.wrap(3) )
+ assert exc.errorstr(space).find('FromObject') >= 0
def test_list_from_fixedptr(self, space, api):
A = lltype.GcArray(lltype.Float)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit