WIP: Add some unit tests

This commit is contained in:
psakiev
2022-03-07 22:34:41 -07:00
parent 453d36ca00
commit f383ca40db

View File

@@ -2,6 +2,7 @@
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import os
import sys
import jinja2
@@ -1138,6 +1139,44 @@ def test_external_package_versions(self, spec_str, is_external, expected):
assert s.external == is_external
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.parametrize('context', [
{'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}
])
@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
):
# Install a spec