WIP: Add some unit tests
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
import jinja2
|
import jinja2
|
||||||
@@ -1138,6 +1139,44 @@ def test_external_package_versions(self, spec_str, is_external, expected):
|
|||||||
assert s.external == is_external
|
assert s.external == is_external
|
||||||
assert s.satisfies(expected)
|
assert s.satisfies(expected)
|
||||||
|
|
||||||
|
def test_reuse_does_not_overwrite_root_dev_specs(self, tmpdir, mock_packages, install_mockery, mock_fetch):
|
||||||
|
with tmpdir.as_cwd():
|
||||||
|
# potential parameters
|
||||||
|
package_name = 'dev-build-test-install'
|
||||||
|
package_version = '0.0.0'
|
||||||
|
# have to setup paths to get concretization to work
|
||||||
|
dev_path = '%s/%s' % (tmpdir.strpath, package_name)
|
||||||
|
os.makedirs(dev_path)
|
||||||
|
spec_str = package_name
|
||||||
|
dev_spec_str = '%s@%s dev_path=%s' % (package_name,
|
||||||
|
package_version, dev_path)
|
||||||
|
# concretize and install a non-dev version
|
||||||
|
s = Spec(spec_str).concretized()
|
||||||
|
s.package.do_install(fake=True)
|
||||||
|
# concretize a dev version
|
||||||
|
dev_spec = Spec(dev_spec_str).concretized(reuse=True)
|
||||||
|
assert dev_spec.dag_hash() is not s.dag_hash()
|
||||||
|
|
||||||
|
def test_reuse_does_not_overwrite_dependent_dev_specs(self, tmpdir, mock_packages, install_mockery, mock_fetch):
|
||||||
|
with tmpdir.as_cwd():
|
||||||
|
# potential parameters
|
||||||
|
root_spec = 'dev-build-test-dependent'
|
||||||
|
package_name = 'dev-build-test-install'
|
||||||
|
package_version = '0.0.0'
|
||||||
|
# have to setup paths to get concretization to work
|
||||||
|
dev_path = '%s/%s' % (tmpdir.strpath, package_name)
|
||||||
|
os.makedirs(dev_path)
|
||||||
|
spec_str = root_spec
|
||||||
|
dev_spec_str = '%s ^%s@%s dev_path=%s' % (root_spec, package_name,
|
||||||
|
package_version, dev_path)
|
||||||
|
# concretize and install a non-dev version
|
||||||
|
s = Spec(spec_str).concretized()
|
||||||
|
s.package.do_install(fake=True)
|
||||||
|
# concretize a dev version
|
||||||
|
dev_spec = Spec(dev_spec_str).concretized(reuse=True)
|
||||||
|
assert dev_spec.dag_hash() is not s.dag_hash()
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.regression('20292')
|
@pytest.mark.regression('20292')
|
||||||
@pytest.mark.parametrize('context', [
|
@pytest.mark.parametrize('context', [
|
||||||
{'add_variant': True, 'delete_variant': False},
|
{'add_variant': True, 'delete_variant': False},
|
||||||
@@ -1145,7 +1184,7 @@ def test_external_package_versions(self, spec_str, is_external, expected):
|
|||||||
{'add_variant': True, 'delete_variant': True}
|
{'add_variant': True, 'delete_variant': True}
|
||||||
])
|
])
|
||||||
@pytest.mark.xfail()
|
@pytest.mark.xfail()
|
||||||
def test_reuse_installed_packages(
|
def test_reuse_installed_packages_when_package_def_changes(
|
||||||
self, context, mutable_database, repo_with_changing_recipe
|
self, context, mutable_database, repo_with_changing_recipe
|
||||||
):
|
):
|
||||||
# Install a spec
|
# Install a spec
|
||||||
|
|||||||
Reference in New Issue
Block a user