diff options
Diffstat (limited to 'numpy/testing/pytest_tools/decorators.py')
-rw-r--r-- | numpy/testing/pytest_tools/decorators.py | 13 |
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 |