3030from .exceptions import ImageComparisonFailure
3131
3232
33- def knownfailureif (fail_condition , msg = None , known_exception_class = None ):
33+ def _knownfailureif (fail_condition , msg = None , known_exception_class = None ):
3434 """
3535
3636 Assume a will fail if *fail_condition* is True. *fail_condition*
@@ -55,6 +55,12 @@ def knownfailureif(fail_condition, msg=None, known_exception_class=None):
5555 return knownfailureif (fail_condition , msg , known_exception_class )
5656
5757
58+ @cbook .deprecated ('2.1' ,
59+ alternative = 'pytest.xfail or import the plugin' )
60+ def knownfailureif (fail_condition , msg = None , known_exception_class = None ):
61+ _knownfailureif (fail_condition , msg , known_exception_class )
62+
63+
5864def _do_cleanup (original_units_registry , original_settings ):
5965 plt .close ('all' )
6066
@@ -161,15 +167,15 @@ def check_freetype_version(ver):
161167 return found >= ver [0 ] and found <= ver [1 ]
162168
163169
164- def checked_on_freetype_version (required_freetype_version ):
170+ def _checked_on_freetype_version (required_freetype_version ):
165171 if check_freetype_version (required_freetype_version ):
166172 return lambda f : f
167173
168174 reason = ("Mismatched version of freetype. "
169175 "Test requires '%s', you have '%s'" %
170176 (required_freetype_version , ft2font .__freetype_version__ ))
171- return knownfailureif ('indeterminate' , msg = reason ,
172- known_exception_class = ImageComparisonFailure )
177+ return _knownfailureif ('indeterminate' , msg = reason ,
178+ known_exception_class = ImageComparisonFailure )
173179
174180
175181def remove_ticks_and_titles (figure ):
@@ -188,7 +194,7 @@ def remove_ticks_and_titles(figure):
188194 pass
189195
190196
191- def raise_on_image_difference (expected , actual , tol ):
197+ def _raise_on_image_difference (expected , actual , tol ):
192198 __tracebackhide__ = True
193199
194200 err = compare_images (expected , actual , tol , in_decorator = True )
@@ -202,18 +208,18 @@ def raise_on_image_difference(expected, actual, tol):
202208 '(RMS %(rms).3f)' % err )
203209
204210
205- def xfail_if_format_is_uncomparable (extension ):
211+ def _xfail_if_format_is_uncomparable (extension ):
206212 will_fail = extension not in comparable_formats ()
207213 if will_fail :
208214 fail_msg = 'Cannot compare %s files on this system' % extension
209215 else :
210216 fail_msg = 'No failure expected'
211217
212- return knownfailureif (will_fail , fail_msg ,
213- known_exception_class = ImageComparisonFailure )
218+ return _knownfailureif (will_fail , fail_msg ,
219+ known_exception_class = ImageComparisonFailure )
214220
215221
216- def mark_xfail_if_format_is_uncomparable (extension ):
222+ def _mark_xfail_if_format_is_uncomparable (extension ):
217223 will_fail = extension not in comparable_formats ()
218224 if will_fail :
219225 fail_msg = 'Cannot compare %s files on this system' % extension
@@ -270,10 +276,15 @@ def copy_baseline(self, baseline, extension):
270276 if os .path .exists (orig_expected_fname ):
271277 shutil .copyfile (orig_expected_fname , expected_fname )
272278 else :
273- from .nose import knownfail
274- knownfail ("Do not have baseline image {0} because this "
279+ reason = ("Do not have baseline image {0} because this "
275280 "file does not exist: {1}" .format (expected_fname ,
276281 orig_expected_fname ))
282+ if is_called_from_pytest ():
283+ import pytest
284+ pytest .xfail (reason )
285+ else :
286+ from ._nose import knownfail
287+ knownfail (reason )
277288 return expected_fname
278289
279290 def compare (self , idx , baseline , extension ):
@@ -293,12 +304,12 @@ def compare(self, idx, baseline, extension):
293304 fig .savefig (actual_fname , ** kwargs )
294305
295306 expected_fname = self .copy_baseline (baseline , extension )
296- raise_on_image_difference (expected_fname , actual_fname , self .tol )
307+ _raise_on_image_difference (expected_fname , actual_fname , self .tol )
297308
298309 def nose_runner (self ):
299310 func = self .compare
300- func = checked_on_freetype_version (self .freetype_version )(func )
301- funcs = {extension : xfail_if_format_is_uncomparable (extension )(func )
311+ func = _checked_on_freetype_version (self .freetype_version )(func )
312+ funcs = {extension : _xfail_if_format_is_uncomparable (extension )(func )
302313 for extension in self .extensions }
303314 for idx , baseline in enumerate (self .baseline_images ):
304315 for extension in self .extensions :
@@ -307,19 +318,20 @@ def nose_runner(self):
307318 def pytest_runner (self ):
308319 from pytest import mark
309320
310- extensions = map (mark_xfail_if_format_is_uncomparable , self .extensions )
321+ extensions = map (_mark_xfail_if_format_is_uncomparable ,
322+ self .extensions )
311323
312324 if len (set (self .baseline_images )) == len (self .baseline_images ):
313325 @mark .parametrize ("extension" , extensions )
314326 @mark .parametrize ("idx,baseline" , enumerate (self .baseline_images ))
315- @checked_on_freetype_version (self .freetype_version )
327+ @_checked_on_freetype_version (self .freetype_version )
316328 def wrapper (idx , baseline , extension ):
317329 __tracebackhide__ = True
318330 self .compare (idx , baseline , extension )
319331 else :
320332 # Some baseline images are repeated, so run this in serial.
321333 @mark .parametrize ("extension" , extensions )
322- @checked_on_freetype_version (self .freetype_version )
334+ @_checked_on_freetype_version (self .freetype_version )
323335 def wrapper (extension ):
324336 __tracebackhide__ = True
325337 for idx , baseline in enumerate (self .baseline_images ):
0 commit comments