summaryrefslogtreecommitdiff
path: root/tests/memoryview/view_return_errors.pyx
diff options
context:
space:
mode:
Diffstat (limited to 'tests/memoryview/view_return_errors.pyx')
-rw-r--r--tests/memoryview/view_return_errors.pyx26
1 files changed, 24 insertions, 2 deletions
diff --git a/tests/memoryview/view_return_errors.pyx b/tests/memoryview/view_return_errors.pyx
index 8e9443108..6cedef969 100644
--- a/tests/memoryview/view_return_errors.pyx
+++ b/tests/memoryview/view_return_errors.pyx
@@ -13,7 +13,18 @@ cdef double[:] foo(int i):
raise TypeError('dummy')
-def propagate(i):
+cdef double[:] foo_nogil(int i) nogil:
+ if i == 1:
+ raise AttributeError('dummy')
+ if i == 2:
+ raise RuntimeError('dummy')
+ if i == 3:
+ raise ValueError('dummy')
+ if i == 4:
+ raise TypeError('dummy')
+
+
+def propagate(i, bint nogil=False):
"""
>>> propagate(0)
TypeError('Memoryview return value is not initialized')
@@ -25,9 +36,20 @@ def propagate(i):
ValueError('dummy')
>>> propagate(4)
TypeError('dummy')
+
+ >>> propagate(0, nogil=True)
+ TypeError('Memoryview return value is not initialized')
+ >>> propagate(1, nogil=True)
+ AttributeError('dummy')
+ >>> propagate(2, nogil=True)
+ RuntimeError('dummy')
+ >>> propagate(3, nogil=True)
+ ValueError('dummy')
+ >>> propagate(4, nogil=True)
+ TypeError('dummy')
"""
try:
- foo(i)
+ foo_nogil(i) if nogil else foo(i)
except Exception as e:
print '%s(%r)' % (e.__class__.__name__, e.args[0])
else: