Update tests

This commit is contained in:
psakiev 2024-05-29 17:15:26 -06:00
parent ca5b085355
commit 36fb2354e1
2 changed files with 14 additions and 6 deletions

View File

@ -2049,8 +2049,7 @@ def define_ad_hoc_versions_from_specs(
version = s.versions.concrete
if version is None or (
not isinstance(version, vn.GitVersion)
and any((v == version) for v in self.possible_versions[s.name])
any((v == version) for v in self.possible_versions[s.name])
):
continue

View File

@ -2920,24 +2920,33 @@ def test_spec_filters(specs, include, exclude, expected):
def test_git_ref_version_can_be_reused(
install_mockery_mutable_config, do_not_check_runtimes_on_reuse
):
first_spec = spack.spec.Spec("git-ref-package@git.2.1.5=2.1.5").concretized()
first_spec = spack.spec.Spec("git-ref-package@git.2.1.5=2.1.5~opt").concretized()
first_spec.package.do_install(fake=True, explicit=True)
with spack.config.override("concretizer:reuse", True):
second_spec = spack.spec.Spec("git-ref-package@git.2.1.5=2.1.5~opt").concretized()
# reproducer of the issue is that spack will solve when there is a change to the base spec
second_spec = spack.spec.Spec("git-ref-package@git.2.1.5=2.1.5+opt").concretized()
assert second_spec.dag_hash() != first_spec.dag_hash()
# we also want to confirm that reuse actually works so leave variant off to let solver reuse
third_spec = spack.spec.Spec("git-ref-package@git.2.1.5=2.1.5")
assert first_spec.satisfies(third_spec)
third_spec.concretize()
assert third_spec.dag_hash() == first_spec.dag_hash()
@pytest.mark.only_clingo("clingo only reuse feature being tested")
@pytest.mark.parametrize(
"standard_version",["2.0.0", "2.1.5", "2.1.6"]
)
def test_reuse_prefers_standard_over_git_versions(
install_mockery_mutable_config, do_not_check_runtimes_on_reuse
standard_version, install_mockery_mutable_config, do_not_check_runtimes_on_reuse
):
"""
order matters in this test. typically reuse would pick the last installed match
but we want to prefer the standard version over git ref based versions
so install git ref last and ensure it is not picked up by reuse
"""
standard_spec = spack.spec.Spec("git-ref-package@2.1.5").concretized()
standard_spec = spack.spec.Spec(f"git-ref-package@{standard_version}").concretized()
standard_spec.package.do_install(fake=True, explicit=True)
git_spec = spack.spec.Spec("git-ref-package@git.2.1.5=2.1.5").concretized()