Update tests
This commit is contained in:
		@@ -2049,8 +2049,7 @@ def define_ad_hoc_versions_from_specs(
 | 
				
			|||||||
            version = s.versions.concrete
 | 
					            version = s.versions.concrete
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if version is None or (
 | 
					            if version is None or (
 | 
				
			||||||
                not isinstance(version, vn.GitVersion)
 | 
					                any((v == version) for v in self.possible_versions[s.name])
 | 
				
			||||||
                and any((v == version) for v in self.possible_versions[s.name])
 | 
					 | 
				
			||||||
            ):
 | 
					            ):
 | 
				
			||||||
                continue
 | 
					                continue
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2920,24 +2920,33 @@ def test_spec_filters(specs, include, exclude, expected):
 | 
				
			|||||||
def test_git_ref_version_can_be_reused(
 | 
					def test_git_ref_version_can_be_reused(
 | 
				
			||||||
    install_mockery_mutable_config, do_not_check_runtimes_on_reuse
 | 
					    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)
 | 
					    first_spec.package.do_install(fake=True, explicit=True)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    with spack.config.override("concretizer:reuse", 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()
 | 
					        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.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(
 | 
					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
 | 
					    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
 | 
					    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
 | 
					    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)
 | 
					    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()
 | 
					    git_spec = spack.spec.Spec("git-ref-package@git.2.1.5=2.1.5").concretized()
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user