From 27cbd348c97a28989340bdfb5e9f95050f972648 Mon Sep 17 00:00:00 2001 From: Maximilian Albert Date: Wed, 13 Jan 2016 11:54:17 +0000 Subject: [PATCH 1/2] Expand docstring to explain return value. --- lib/matplotlib/testing/decorators.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/matplotlib/testing/decorators.py b/lib/matplotlib/testing/decorators.py index 06877c83bf8b..7683a43a4444 100644 --- a/lib/matplotlib/testing/decorators.py +++ b/lib/matplotlib/testing/decorators.py @@ -364,7 +364,9 @@ def _image_directories(func): import imp def find_dotted_module(module_name, path=None): - """A version of imp which can handle dots in the module name""" + """A version of imp which can handle dots in the module name. + As for imp.find_module(), the return value is a 3-element + tuple (file, pathname, description).""" res = None for sub_mod in module_name.split('.'): try: From 90b8f113b77e1ff833ea9ea5db659e945c14dabe Mon Sep 17 00:00:00 2001 From: Maximilian Albert Date: Wed, 13 Jan 2016 11:55:21 +0000 Subject: [PATCH 2/2] Remove assertion so that @image_comparison can be used outside a 'tests' module, but issue warning because the code logic seems a bit fragile and may fail. --- lib/matplotlib/testing/decorators.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/matplotlib/testing/decorators.py b/lib/matplotlib/testing/decorators.py index 7683a43a4444..a73dbd150504 100644 --- a/lib/matplotlib/testing/decorators.py +++ b/lib/matplotlib/testing/decorators.py @@ -359,7 +359,13 @@ def _image_directories(func): # namespace package pip installed and run via the nose # multiprocess plugin or as a specific test this may be # missing. See https://github.com/matplotlib/matplotlib/issues/3314 - assert mods.pop(0) == 'tests' + if mods.pop(0) != 'tests': + warnings.warn(("Module '%s' does not live in a parent module " + "named 'tests'. This is probably ok, but we may not be able " + "to guess the correct subdirectory containing the baseline " + "images. If things go wrong please make sure that there is " + "a parent directory named 'tests' and that it contains a " + "__init__.py file (can be empty).") % module_name) subdir = os.path.join(*mods) import imp