add test for incompatible repos
This commit is contained in:
parent
d8baa193b3
commit
7a8eaa1657
@ -38,6 +38,27 @@ def extra_repo(tmp_path_factory, request):
|
|||||||
return spack.repo.Repo(str(repo_dir), cache=repo_cache), request.param
|
return spack.repo.Repo(str(repo_dir), cache=repo_cache), request.param
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(scope="function")
|
||||||
|
def versioned_repo(tmp_path_factory, request):
|
||||||
|
def _execute(spack_version, repo_version):
|
||||||
|
repo_namespace = "extra_test_repo"
|
||||||
|
repo_dir = tmp_path_factory.mktemp(repo_namespace)
|
||||||
|
cache_dir = tmp_path_factory.mktemp("cache")
|
||||||
|
(repo_dir / "packages").mkdir(parents=True, exist_ok=True)
|
||||||
|
(repo_dir / "repo.yaml").write_text(
|
||||||
|
f"""
|
||||||
|
repo:
|
||||||
|
namespace: extra_test_repo
|
||||||
|
required_spack_version: '{spack_version}'
|
||||||
|
version: '{repo_version}'
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
repo_cache = spack.util.file_cache.FileCache(str(cache_dir))
|
||||||
|
return spack.repo.Repo(str(repo_dir), cache=repo_cache)
|
||||||
|
|
||||||
|
return _execute
|
||||||
|
|
||||||
|
|
||||||
def test_repo_getpkg(mutable_mock_repo):
|
def test_repo_getpkg(mutable_mock_repo):
|
||||||
mutable_mock_repo.get_pkg_class("pkg-a")
|
mutable_mock_repo.get_pkg_class("pkg-a")
|
||||||
mutable_mock_repo.get_pkg_class("builtin.mock.pkg-a")
|
mutable_mock_repo.get_pkg_class("builtin.mock.pkg-a")
|
||||||
@ -303,3 +324,13 @@ def test_get_repo(self, mock_test_cache):
|
|||||||
# foo is not there, raise
|
# foo is not there, raise
|
||||||
with pytest.raises(spack.repo.UnknownNamespaceError):
|
with pytest.raises(spack.repo.UnknownNamespaceError):
|
||||||
repo.get_repo("foo")
|
repo.get_repo("foo")
|
||||||
|
|
||||||
|
|
||||||
|
def test_incompatible_repo(mutable_mock_repo, versioned_repo):
|
||||||
|
with pytest.raises(spack.repo.BadRepoError, match="requires Spack version"):
|
||||||
|
# test added after Spack passed version 0.22
|
||||||
|
versioned_repo(":0.22", ":")
|
||||||
|
|
||||||
|
with pytest.raises(spack.repo.BadRepoError, match="requires repo version"):
|
||||||
|
# ":a" < "0", and all Spack versions require at least "0:"
|
||||||
|
versioned_repo(":", ":a")
|
||||||
|
Loading…
Reference in New Issue
Block a user