diff --git a/IPython/external/decorators/_decorators.py b/IPython/external/decorators/_decorators.py index 18f847a..2dcf621 100644 --- a/IPython/external/decorators/_decorators.py +++ b/IPython/external/decorators/_decorators.py @@ -133,9 +133,16 @@ def knownfailureif(fail_condition, msg=None): # import time overhead at actual test-time. import nose + try: + from pytest import xfail + except ImportError: + + def xfail(): + raise KnownFailureTest(msg) + def knownfailer(*args, **kwargs): if fail_condition: - raise KnownFailureTest(msg) + xfail(msg) else: return f(*args, **kwargs) return nose.tools.make_decorator(f)(knownfailer) diff --git a/IPython/external/decorators/_numpy_testing_noseclasses.py b/IPython/external/decorators/_numpy_testing_noseclasses.py index ca6ccd8..7a4360c 100644 --- a/IPython/external/decorators/_numpy_testing_noseclasses.py +++ b/IPython/external/decorators/_numpy_testing_noseclasses.py @@ -7,9 +7,15 @@ import os from nose.plugins.errorclass import ErrorClass, ErrorClassPlugin -class KnownFailureTest(Exception): - '''Raise this exception to mark a test as a known failing test.''' - pass + +try: + import pytest + + KnownFailureTest = pytest.xfail.Exception +except ImportError: + + class KnownFailureTest(Exception): + """Raise this exception to mark a test as a known failing test.""" class KnownFailure(ErrorClassPlugin):