From 8ec1369d2b65cfbf00738d727f5ee976092a45c1 Mon Sep 17 00:00:00 2001 From: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> Date: Mon, 5 May 2025 22:35:26 -0700 Subject: [PATCH] unit tests: use mock_packages for 'spack [info|list|style]' tests (#50309) --- lib/spack/spack/test/cmd/info.py | 21 +++++++-------------- lib/spack/spack/test/cmd/list.py | 23 +++++++++++++---------- lib/spack/spack/test/cmd/style.py | 2 +- 3 files changed, 21 insertions(+), 25 deletions(-) diff --git a/lib/spack/spack/test/cmd/info.py b/lib/spack/spack/test/cmd/info.py index fcc01d2cd1a..45b8629e127 100644 --- a/lib/spack/spack/test/cmd/info.py +++ b/lib/spack/spack/test/cmd/info.py @@ -9,6 +9,8 @@ import spack.cmd.info from spack.main import SpackCommand +pytestmark = [pytest.mark.usefixtures("mock_packages")] + info = SpackCommand("info") @@ -31,15 +33,12 @@ def _print(*args, **kwargs): return buffer -@pytest.mark.parametrize( - "pkg", ["openmpi", "trilinos", "boost", "python", "dealii", "xsdk", "gasnet", "warpx"] -) @pytest.mark.parametrize("extra_args", [[], ["--variants-by-name"]]) -def test_it_just_runs(pkg, extra_args): - info(pkg, *extra_args) +def test_it_just_runs(extra_args): + info("vtk-m", *extra_args) -def test_info_noversion(mock_packages, print_buffer): +def test_info_noversion(print_buffer): """Check that a mock package with no versions outputs None.""" info("noversion") @@ -58,7 +57,7 @@ def test_info_noversion(mock_packages, print_buffer): @pytest.mark.parametrize( "pkg_query,expected", [("zlib", "False"), ("find-externals1", "True (version)")] ) -def test_is_externally_detectable(mock_packages, pkg_query, expected, parser, print_buffer): +def test_is_externally_detectable(pkg_query, expected, parser, print_buffer): args = parser.parse_args(["--detectable", pkg_query]) spack.cmd.info.info(parser, args) @@ -70,13 +69,7 @@ def test_is_externally_detectable(mock_packages, pkg_query, expected, parser, pr @pytest.mark.parametrize( - "pkg_query", - [ - "hdf5", - "cloverleaf3d", - "trilinos", - "gcc", # This should ensure --test's c_names processing loop covered - ], + "pkg_query", ["vtk-m", "gcc"] # This should ensure --test's c_names processing loop covered ) @pytest.mark.parametrize("extra_args", [[], ["--variants-by-name"]]) def test_info_fields(pkg_query, extra_args, parser, print_buffer): diff --git a/lib/spack/spack/test/cmd/list.py b/lib/spack/spack/test/cmd/list.py index 3f9266645d4..e2ea000c7ea 100644 --- a/lib/spack/spack/test/cmd/list.py +++ b/lib/spack/spack/test/cmd/list.py @@ -6,16 +6,20 @@ import sys from textwrap import dedent +import pytest + import spack.paths import spack.repo from spack.main import SpackCommand +pytestmark = [pytest.mark.usefixtures("mock_packages")] + list = SpackCommand("list") def test_list(): output = list() - assert "cloverleaf3d" in output + assert "bzip2" in output assert "hdf5" in output @@ -41,7 +45,7 @@ def test_list_cli_output_format(mock_tty_stdout): assert out == out_str -def test_list_filter(mock_packages): +def test_list_filter(): output = list("py-*") assert "py-extension1" in output assert "py-extension2" in output @@ -57,18 +61,18 @@ def test_list_filter(mock_packages): assert "mpich" not in output -def test_list_search_description(mock_packages): +def test_list_search_description(): output = list("--search-description", "one build dependency") assert "depb" in output -def test_list_format_name_only(mock_packages): +def test_list_format_name_only(): output = list("--format", "name_only") assert "zmpi" in output assert "hdf5" in output -def test_list_format_version_json(mock_packages): +def test_list_format_version_json(): output = list("--format", "version_json") assert '{"name": "zmpi",' in output assert '{"name": "dyninst",' in output @@ -77,7 +81,7 @@ def test_list_format_version_json(mock_packages): json.loads(output) -def test_list_format_html(mock_packages): +def test_list_format_html(): output = list("--format", "html") assert '