Package: Don't warn for missing source on bundle packages without code (#30913)

This commit is contained in:
Chuck Atkins
2022-06-06 17:33:03 -05:00
committed by GitHub
parent 932065beca
commit 9d7cc43673
4 changed files with 38 additions and 3 deletions

View File

@@ -1721,7 +1721,7 @@ def content_hash(self, content=None):
# referenced by branch name rather than tag or commit ID.
env = spack.environment.active_environment()
from_local_sources = env and env.is_develop(self.spec)
if not self.spec.external and not from_local_sources:
if self.has_code and not self.spec.external and not from_local_sources:
message = 'Missing a source id for {s.name}@{s.version}'
tty.warn(message.format(s=self))
hash_content.append(''.encode('utf-8'))

View File

@@ -414,9 +414,27 @@ def test_nosource_pkg_install(
pkg.do_install()
out = capfd.readouterr()
assert "Installing dependency-install" in out[0]
# Make sure a warning for missing code is issued
assert "Missing a source id for nosource" in out[1]
@pytest.mark.disable_clean_stage_check
def test_nosource_bundle_pkg_install(
install_mockery, mock_fetch, mock_packages, capfd):
"""Test install phases with the nosource-bundle package."""
spec = Spec('nosource-bundle').concretized()
pkg = spec.package
# Make sure install works even though there is no associated code.
pkg.do_install()
out = capfd.readouterr()
assert "Installing dependency-install" in out[0]
# Make sure a warning for missing code is *not* issued
assert "Missing a source id for nosource" not in out[1]
def test_nosource_pkg_install_post_install(
install_mockery, mock_fetch, mock_packages):
"""Test install phases with the nosource package with post-install."""