From 237375f3a490ba0ff6d9a46850a722649883bfb7 Mon Sep 17 00:00:00 2001 From: Simon Li Date: Sun, 28 Jan 2024 19:26:24 +0000 Subject: [PATCH] pytest >=7,<9 --- dev-requirements.txt | 2 +- tests/conftest.py | 25 ++++++++++++------------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/dev-requirements.txt b/dev-requirements.txt index c2b8cf1d..f7d64cc7 100644 --- a/dev-requirements.txt +++ b/dev-requirements.txt @@ -2,6 +2,6 @@ build conda-lock pre-commit pytest-cov -pytest>=4.6,<8 +pytest>=7,<9 pyyaml requests_mock diff --git a/tests/conftest.py b/tests/conftest.py index 333d0b24..76f14c80 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -33,11 +33,11 @@ from repo2docker.__main__ import make_r2d TESTS_DIR = os.path.abspath(os.path.dirname(__file__)) -def pytest_collect_file(parent, path): - if path.basename == "verify": - return LocalRepo.from_parent(parent, path=path) - elif path.basename.endswith(".repos.yaml"): - return RemoteRepoList.from_parent(parent, path=path) +def pytest_collect_file(parent, file_path): + if file_path.name == "verify": + return LocalRepo.from_parent(parent, path=file_path) + elif file_path.name.endswith(".repos.yaml"): + return RemoteRepoList.from_parent(parent, path=file_path) def make_test_func(args, skip_build=False, extra_run_kwargs=None): @@ -233,24 +233,23 @@ class LocalRepo(pytest.File): args = ["--appendix", 'RUN echo "appendix" > /tmp/appendix'] # If there's an extra-args.yaml file in a test dir, assume it contains # a yaml list with extra arguments to be passed to repo2docker - extra_args_path = os.path.join(self.path.dirname, "test-extra-args.yaml") - if os.path.exists(extra_args_path): - with open(extra_args_path) as f: - extra_args = yaml.safe_load(f) + extra_args_path = self.path.parent / "test-extra-args.yaml" + if extra_args_path.exists(): + extra_args = yaml.safe_load(extra_args_path.read_text()) args += extra_args - print(self.path.basename, self.path.dirname, str(self.path)) + print(self.path.name, self.path.parent, str(self.path)) # re-use image name for multiple tests of the same image # so we don't run through the build twice - rel_repo_dir = os.path.relpath(self.path.dirname, TESTS_DIR) + rel_repo_dir = os.path.relpath(self.path.parent, TESTS_DIR) image_name = f"r2d-tests-{escapism.escape(rel_repo_dir, escape_char='-').lower()}-{int(time.time())}" args.append(f"--image-name={image_name}") - args.append(self.path.dirname) + args.append(str(self.path.parent)) yield Repo2DockerTest.from_parent(self, name="build", args=args) yield Repo2DockerTest.from_parent( self, - name=self.path.basename, + name=self.path.name, args=args + ["./verify"], skip_build=True, )