From 3b00a956c7fcebd67fa5491efb5b166215ee45a3 Mon Sep 17 00:00:00 2001 From: Nikita Kniazev Date: Tue, 12 Jul 2016 18:44:45 +0300 Subject: [PATCH] Do not rely on outer scope variables in `ImageComparisonTest.test.do_test` `do_test` function variables are changed by loop where function was creates. It will work as you expect only if you call yielded function immediately. --- lib/matplotlib/testing/decorators.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/matplotlib/testing/decorators.py b/lib/matplotlib/testing/decorators.py index 6c5919110e58..d5631aa141bd 100644 --- a/lib/matplotlib/testing/decorators.py +++ b/lib/matplotlib/testing/decorators.py @@ -237,7 +237,7 @@ def test(self): @knownfailureif( will_fail, fail_msg, known_exception_class=ImageComparisonFailure) - def do_test(): + def do_test(fignum, actual_fname, expected_fname): figure = plt.figure(fignum) if self._remove_text: @@ -264,7 +264,7 @@ def do_test(): (self._freetype_version, ft2font.__freetype_version__)) raise - yield (do_test,) + yield do_test, fignum, actual_fname, expected_fname def image_comparison(baseline_images=None, extensions=None, tol=0, freetype_version=None, remove_text=False,