summaryrefslogtreecommitdiff
path: root/numpy/testing/pytest_tools/decorators.py
diff options
context:
space:
mode:
Diffstat (limited to 'numpy/testing/pytest_tools/decorators.py')
-rw-r--r--numpy/testing/pytest_tools/decorators.py13
1 files changed, 9 insertions, 4 deletions
diff --git a/numpy/testing/pytest_tools/decorators.py b/numpy/testing/pytest_tools/decorators.py
index bbca34035..f8addb9c8 100644
--- a/numpy/testing/pytest_tools/decorators.py
+++ b/numpy/testing/pytest_tools/decorators.py
@@ -12,7 +12,12 @@ function name, setup and teardown functions and so on.
"""
from __future__ import division, absolute_import, print_function
-import collections
+try:
+ # Accessing collections abstact classes from collections
+ # has been deprecated since Python 3.3
+ import collections.abc as collections_abc
+except ImportError:
+ import collections as collections_abc
from .utils import SkipTest, assert_warns, HAS_REFCOUNT
@@ -127,7 +132,7 @@ def skipif(skip_condition, msg=None):
out = msg
# Allow for both boolean or callable skip conditions.
- if isinstance(skip_condition, collections.Callable):
+ if isinstance(skip_condition, collections_abc.Callable):
skip_val = lambda: skip_condition()
else:
skip_val = lambda: skip_condition
@@ -203,7 +208,7 @@ def knownfailureif(fail_condition, msg=None):
msg = 'Test skipped due to known failure'
# Allow for both boolean or callable known failure conditions.
- if isinstance(fail_condition, collections.Callable):
+ if isinstance(fail_condition, collections_abc.Callable):
fail_val = lambda: fail_condition()
else:
fail_val = lambda: fail_condition
@@ -252,7 +257,7 @@ def deprecated(conditional=True):
with assert_warns(DeprecationWarning):
f(*args, **kwargs)
- if isinstance(conditional, collections.Callable):
+ if isinstance(conditional, collections_abc.Callable):
cond = conditional()
else:
cond = conditional