From b446caf7e0c8dd7db6428b2823714cbd5b815156 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Mon, 11 Jan 2021 12:14:48 +0100 Subject: [PATCH] Define create_module()/exec_module() in AssertionRewritingHook to avoid ImportWarning __________ ERROR collecting testing/python/show_fixtures_per_test.py ___________ /usr/lib/python3.10/site-packages/py/_path/local.py:704: in pyimport __import__(modname) :1026: in _find_and_load ??? :1005: in _find_and_load_unlocked ??? :681: in _load_unlocked ??? E ImportWarning: AssertionRewritingHook.exec_module() not found; falling back to load_module() !!!!!!!!!!!!!!!!!!! Interrupted: 59 errors during collection !!!!!!!!!!!!!!!!!!! =========================== 59 error in 3.65 seconds =========================== --- changelog/8236.bugfix.rst | 2 ++ src/_pytest/assertion/rewrite.py | 6 ++++++ 2 files changed, 8 insertions(+) create mode 100644 changelog/8236.bugfix.rst diff --git a/changelog/8236.bugfix.rst b/changelog/8236.bugfix.rst new file mode 100644 index 00000000000..a2b0d9c5d23 --- /dev/null +++ b/changelog/8236.bugfix.rst @@ -0,0 +1,2 @@ +Define ``create_module()`` and ``exec_module()`` methods in +``AssertionRewritingHook`` to get rid of ``ImportWarning`` on Python 3.10+. diff --git a/src/_pytest/assertion/rewrite.py b/src/_pytest/assertion/rewrite.py index 1c6161b212d..7e7eebd25ab 100644 --- a/src/_pytest/assertion/rewrite.py +++ b/src/_pytest/assertion/rewrite.py @@ -308,6 +308,12 @@ def load_module(self, name): raise return sys.modules[name] + def create_module(self, spec): + return self.load_module(spec.name) + + def exec_module(self, module): + pass + def is_package(self, name): try: fd, fn, desc = self._imp_find_module(name)