summaryrefslogtreecommitdiff
path: root/sphinx/testing/fixtures.py
diff options
context:
space:
mode:
Diffstat (limited to 'sphinx/testing/fixtures.py')
-rw-r--r--sphinx/testing/fixtures.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/sphinx/testing/fixtures.py b/sphinx/testing/fixtures.py
index e6c3edd18..b9ee30d8a 100644
--- a/sphinx/testing/fixtures.py
+++ b/sphinx/testing/fixtures.py
@@ -250,3 +250,15 @@ def tempdir(tmpdir: str) -> "util.path":
this fixture is for compat with old test implementation.
"""
return util.path(tmpdir)
+
+
+@pytest.fixture
+def rollback_sysmodules():
+ """Rollback sys.modules to before testing to unload modules during tests."""
+ try:
+ sysmodules = list(sys.modules)
+ yield
+ finally:
+ for modname in list(sys.modules):
+ if modname not in sysmodules:
+ sys.modules.pop(modname)