pull/1330/head
Simon Li 2024-01-28 19:26:24 +00:00
rodzic 6fe9ee6763
commit 237375f3a4
2 zmienionych plików z 13 dodań i 14 usunięć

Wyświetl plik

@ -2,6 +2,6 @@ build
conda-lock conda-lock
pre-commit pre-commit
pytest-cov pytest-cov
pytest>=4.6,<8 pytest>=7,<9
pyyaml pyyaml
requests_mock requests_mock

Wyświetl plik

@ -33,11 +33,11 @@ from repo2docker.__main__ import make_r2d
TESTS_DIR = os.path.abspath(os.path.dirname(__file__)) TESTS_DIR = os.path.abspath(os.path.dirname(__file__))
def pytest_collect_file(parent, path): def pytest_collect_file(parent, file_path):
if path.basename == "verify": if file_path.name == "verify":
return LocalRepo.from_parent(parent, path=path) return LocalRepo.from_parent(parent, path=file_path)
elif path.basename.endswith(".repos.yaml"): elif file_path.name.endswith(".repos.yaml"):
return RemoteRepoList.from_parent(parent, path=path) return RemoteRepoList.from_parent(parent, path=file_path)
def make_test_func(args, skip_build=False, extra_run_kwargs=None): 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'] args = ["--appendix", 'RUN echo "appendix" > /tmp/appendix']
# If there's an extra-args.yaml file in a test dir, assume it contains # 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 # a yaml list with extra arguments to be passed to repo2docker
extra_args_path = os.path.join(self.path.dirname, "test-extra-args.yaml") extra_args_path = self.path.parent / "test-extra-args.yaml"
if os.path.exists(extra_args_path): if extra_args_path.exists():
with open(extra_args_path) as f: extra_args = yaml.safe_load(extra_args_path.read_text())
extra_args = yaml.safe_load(f)
args += extra_args 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 # re-use image name for multiple tests of the same image
# so we don't run through the build twice # 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())}" 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(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="build", args=args)
yield Repo2DockerTest.from_parent( yield Repo2DockerTest.from_parent(
self, self,
name=self.path.basename, name=self.path.name,
args=args + ["./verify"], args=args + ["./verify"],
skip_build=True, skip_build=True,
) )