summaryrefslogtreecommitdiff
path: root/numpy
diff options
context:
space:
mode:
Diffstat (limited to 'numpy')
-rw-r--r--numpy/core/numeric.py6
-rw-r--r--numpy/core/tests/test_regression.py5
2 files changed, 9 insertions, 2 deletions
diff --git a/numpy/core/numeric.py b/numpy/core/numeric.py
index 8ac6ff726..0f6f02eed 100644
--- a/numpy/core/numeric.py
+++ b/numpy/core/numeric.py
@@ -781,11 +781,17 @@ class errstate(object):
# Note that we don't want to run the above doctests because they will fail
# without a from __future__ import with_statement
def __init__(self, **kwargs):
+ try:
+ self.errcall = kwargs.pop('errcall')
+ except KeyError:
+ self.errcall = None
self.kwargs = kwargs
def __enter__(self):
self.oldstate = seterr(**self.kwargs)
+ self.oldcall = seterrcall(self.errcall)
def __exit__(self, *exc_info):
seterr(**self.oldstate)
+ seterrcall(self.oldcall)
def _setdef():
defval = [UFUNC_BUFSIZE_DEFAULT, ERR_DEFAULT2, None]
diff --git a/numpy/core/tests/test_regression.py b/numpy/core/tests/test_regression.py
index 9dfc31183..58b4c4459 100644
--- a/numpy/core/tests/test_regression.py
+++ b/numpy/core/tests/test_regression.py
@@ -215,8 +215,9 @@ class test_regression(NumpyTestCase):
def check_longfloat_repr(self,level=rlevel):
"""Ticket #112"""
- a = N.exp(N.array([1000],dtype=N.longfloat))
- assert(str(a)[1:9] == str(a[0])[:8])
+ if N.longfloat(0).itemsize > 8:
+ a = N.exp(N.array([1000],dtype=N.longfloat))
+ assert(str(a)[1:9] == str(a[0])[:8])
def check_argmax(self,level=rlevel):
"""Ticket #119"""