Merge pull request #1330 from manics/pin-pytest

Support pytest=8
pull/1333/head
Yuvi Panda 2024-02-01 16:41:55 -08:00 zatwierdzone przez GitHub
commit 3221560bb1
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: B5690EEEBB952194
2 zmienionych plików z 15 dodań i 16 usunięć

Wyświetl plik

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

Wyświetl plik

@ -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, fspath=path)
elif path.basename.endswith(".repos.yaml"):
return RemoteRepoList.from_parent(parent, fspath=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):
@ -213,7 +213,7 @@ class Repo2DockerTest(pytest.Function):
super().__init__(name, parent, callobj=f)
def reportinfo(self):
return (self.parent.fspath, None, "")
return (self.parent.path, None, "")
def repr_failure(self, excinfo):
err = excinfo.value
@ -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.fspath.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.fspath.basename, self.fspath.dirname, str(self.fspath))
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.fspath.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.fspath.dirname)
args.append(str(self.path.parent))
yield Repo2DockerTest.from_parent(self, name="build", args=args)
yield Repo2DockerTest.from_parent(
self,
name=self.fspath.basename,
name=self.path.name,
args=args + ["./verify"],
skip_build=True,
)
@ -273,7 +272,7 @@ class LocalRepo(pytest.File):
class RemoteRepoList(pytest.File):
def collect(self):
with self.fspath.open() as f:
with self.path.open() as f:
repos = yaml.safe_load(f)
for repo in repos:
args = []