diff --git a/changelog/9608.bugfix.rst b/changelog/9608.bugfix.rst new file mode 100644 index 000000000..4dda46bec --- /dev/null +++ b/changelog/9608.bugfix.rst @@ -0,0 +1 @@ +Fix invalid importing of ``importlib.readers`` in Python 3.9. diff --git a/src/_pytest/assertion/rewrite.py b/src/_pytest/assertion/rewrite.py index f0922870a..81096764e 100644 --- a/src/_pytest/assertion/rewrite.py +++ b/src/_pytest/assertion/rewrite.py @@ -273,13 +273,15 @@ class AssertionRewritingHook(importlib.abc.MetaPathFinder, importlib.abc.Loader) with open(pathname, "rb") as f: return f.read() - if sys.version_info >= (3, 9): + if sys.version_info >= (3, 10): def get_resource_reader(self, name: str) -> importlib.abc.TraversableResources: # type: ignore - from types import SimpleNamespace - from importlib.readers import FileReader + if sys.version_info < (3, 11): + from importlib.readers import FileReader + else: + from importlib.resources.readers import FileReader - return FileReader(SimpleNamespace(path=self._rewritten_names[name])) + return FileReader(types.SimpleNamespace(path=self._rewritten_names[name])) def _write_pyc_fp(