Source code for spack.test.cmd.tags
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import spack.main
import spack.repo
import spack.spec
tags = spack.main.SpackCommand('tags')
[docs]def test_tags_bad_options():
out = tags('-a', 'tag1', fail_on_error=False)
assert "option OR provide" in out
[docs]def test_tags_no_installed(install_mockery, mock_fetch):
out = tags('-i')
assert 'No installed' in out
[docs]def test_tags_all_mock_tags(mock_packages):
out = tags()
for tag in ['tag1', 'tag2', 'tag3']:
assert tag in out
[docs]def test_tags_all_mock_tag_packages(mock_packages):
out = tags('-a')
for pkg in ['mpich\n', 'mpich2\n']:
assert pkg in out
[docs]def test_tags_no_tags(monkeypatch):
class tag_path():
tag_index = dict()
monkeypatch.setattr(spack.repo, 'path', tag_path)
out = tags()
assert "No tagged" in out
[docs]def test_tags_installed(install_mockery, mock_fetch):
spec = spack.spec.Spec('mpich').concretized()
pkg = spack.repo.get(spec)
pkg.do_install()
out = tags('-i')
for tag in ['tag1', 'tag2']:
assert tag in out
out = tags('-i', 'tag1')
assert 'mpich' in out
out = tags('-i', 'tag3')
assert 'No installed' in out