From 9c6db6670f490462f5e1a6d677db843408868928 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Mon, 16 Oct 2023 19:39:02 -0400 Subject: [PATCH] TST: Use importlib for subprocess tests This allows running pytest with any import-mode option. --- lib/matplotlib/testing/__init__.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/matplotlib/testing/__init__.py b/lib/matplotlib/testing/__init__.py index da21eb42c5b2..d740b625b7c1 100644 --- a/lib/matplotlib/testing/__init__.py +++ b/lib/matplotlib/testing/__init__.py @@ -122,11 +122,16 @@ def subprocess_run_helper(func, *args, timeout, extra_env=None): """ target = func.__name__ module = func.__module__ + file = func.__code__.co_filename proc = subprocess_run_for_testing( [ sys.executable, "-c", - f"from {module} import {target}; {target}()", + f"import importlib.util;" + f"_spec = importlib.util.spec_from_file_location({module!r}, {file!r});" + f"_module = importlib.util.module_from_spec(_spec);" + f"_spec.loader.exec_module(_module);" + f"_module.{target}()", *args ], env={**os.environ, "SOURCE_DATE_EPOCH": "0", **(extra_env or {})},