Update tests
This commit is contained in:
		@@ -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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user