summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2024-06-20 19:00:39 (GMT)
committerGitHub <noreply@github.com>2024-06-20 19:00:39 (GMT)
commit85d90b59e2a9185cad608c5047357be645b4d5c6 (patch)
treeb66e258430dfafb4f88223087c6851d4294653ae
parentc1553bc34a537e00d6513da7df1c427df3570574 (diff)
downloadcpython-85d90b59e2a9185cad608c5047357be645b4d5c6.zip
cpython-85d90b59e2a9185cad608c5047357be645b4d5c6.tar.gz
cpython-85d90b59e2a9185cad608c5047357be645b4d5c6.tar.bz2
gh-120801: Refactor importlib.metadata fixtures. (#120803)
These changes released with importlib_metadata 7.2.0.
-rw-r--r--Lib/test/test_importlib/metadata/fixtures.py33
-rw-r--r--Lib/test/test_importlib/metadata/test_api.py2
-rw-r--r--Lib/test/test_importlib/metadata/test_main.py2
-rw-r--r--Misc/NEWS.d/next/Tests/2024-06-20-12-51-26.gh-issue-120801.lMVXC9.rst2
4 files changed, 11 insertions, 28 deletions
diff --git a/Lib/test/test_importlib/metadata/fixtures.py b/Lib/test/test_importlib/metadata/fixtures.py
index 7ff94c9..81ff678 100644
--- a/Lib/test/test_importlib/metadata/fixtures.py
+++ b/Lib/test/test_importlib/metadata/fixtures.py
@@ -1,10 +1,8 @@
-import os
import sys
import copy
import json
import shutil
import pathlib
-import tempfile
import textwrap
import functools
import contextlib
@@ -27,29 +25,12 @@ except (ImportError, AttributeError):
@contextlib.contextmanager
-def tempdir():
- tmpdir = tempfile.mkdtemp()
- try:
- yield pathlib.Path(tmpdir)
- finally:
- shutil.rmtree(tmpdir)
-
-
-@contextlib.contextmanager
-def save_cwd():
- orig = os.getcwd()
- try:
- yield
- finally:
- os.chdir(orig)
-
-
-@contextlib.contextmanager
-def tempdir_as_cwd():
- with tempdir() as tmp:
- with save_cwd():
- os.chdir(str(tmp))
- yield tmp
+def tmp_path():
+ """
+ Like os_helper.temp_dir, but yields a pathlib.Path.
+ """
+ with os_helper.temp_dir() as path:
+ yield pathlib.Path(path)
@contextlib.contextmanager
@@ -70,7 +51,7 @@ class Fixtures:
class SiteDir(Fixtures):
def setUp(self):
super().setUp()
- self.site_dir = self.fixtures.enter_context(tempdir())
+ self.site_dir = self.fixtures.enter_context(tmp_path())
class OnSysPath(Fixtures):
diff --git a/Lib/test/test_importlib/metadata/test_api.py b/Lib/test/test_importlib/metadata/test_api.py
index 33c6e85..7d26756 100644
--- a/Lib/test/test_importlib/metadata/test_api.py
+++ b/Lib/test/test_importlib/metadata/test_api.py
@@ -109,7 +109,7 @@ class APITests(
Entry points should only be exposed for the first package
on sys.path with a given name (even when normalized).
"""
- alt_site_dir = self.fixtures.enter_context(fixtures.tempdir())
+ alt_site_dir = self.fixtures.enter_context(fixtures.tmp_path())
self.fixtures.enter_context(self.add_sys_path(alt_site_dir))
alt_pkg = {
"DistInfo_pkg-1.1.0.dist-info": {
diff --git a/Lib/test/test_importlib/metadata/test_main.py b/Lib/test/test_importlib/metadata/test_main.py
index c4accae..e421807 100644
--- a/Lib/test/test_importlib/metadata/test_main.py
+++ b/Lib/test/test_importlib/metadata/test_main.py
@@ -138,7 +138,7 @@ class NameNormalizationTests(fixtures.OnSysPath, fixtures.SiteDir, unittest.Test
fixtures.build_files(self.make_pkg('abc'), self.site_dir)
before = list(_unique(distributions()))
- alt_site_dir = self.fixtures.enter_context(fixtures.tempdir())
+ alt_site_dir = self.fixtures.enter_context(fixtures.tmp_path())
self.fixtures.enter_context(self.add_sys_path(alt_site_dir))
fixtures.build_files(self.make_pkg('ABC'), alt_site_dir)
after = list(_unique(distributions()))
diff --git a/Misc/NEWS.d/next/Tests/2024-06-20-12-51-26.gh-issue-120801.lMVXC9.rst b/Misc/NEWS.d/next/Tests/2024-06-20-12-51-26.gh-issue-120801.lMVXC9.rst
new file mode 100644
index 0000000..8559cb8
--- /dev/null
+++ b/Misc/NEWS.d/next/Tests/2024-06-20-12-51-26.gh-issue-120801.lMVXC9.rst
@@ -0,0 +1,2 @@
+Cleaned up fixtures for importlib.metadata tests and consolidated behavior
+with 'test.support.os_helper'.