From ea60220a84b0547abe886683fabbb44184cdfb63 Mon Sep 17 00:00:00 2001 From: Xavier Delaruelle Date: Mon, 27 Mar 2023 10:48:25 +0200 Subject: modules: enhance help message (#36410) Update tcl and lmod modulefile template to provide more information on help message (name, version and target) like done on whatis for lmod modulefiles. --- lib/spack/spack/test/modules/lmod.py | 27 ++++++++++++++++++++++++++- lib/spack/spack/test/modules/tcl.py | 28 ++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/spack/spack/test/modules/lmod.py b/lib/spack/spack/test/modules/lmod.py index 4ac888f2d5..3ba4953844 100644 --- a/lib/spack/spack/test/modules/lmod.py +++ b/lib/spack/spack/test/modules/lmod.py @@ -88,7 +88,7 @@ class TestLmod(object): assert provides["compiler"] == spack.spec.CompilerSpec("oneapi@3.0") def test_simple_case(self, modulefile_content, module_configuration): - """Tests the generation of a simple Tcl module file.""" + """Tests the generation of a simple Lua module file.""" module_configuration("autoload_direct") content = modulefile_content(mpich_spec_string) @@ -147,6 +147,31 @@ class TestLmod(object): assert len([x for x in content if 'append_path("SPACE", "qux", " ")' in x]) == 1 assert len([x for x in content if 'remove_path("SPACE", "qux", " ")' in x]) == 1 + def test_help_message(self, modulefile_content, module_configuration): + """Tests the generation of module help message.""" + + module_configuration("autoload_direct") + content = modulefile_content("mpileaks target=core2") + + help_msg = ( + "help([[Name : mpileaks]])" + "help([[Version: 2.3]])" + "help([[Target : core2]])" + "help()" + "help([[Mpileaks is a mock package that passes audits]])" + ) + assert help_msg in "".join(content) + + content = modulefile_content("libdwarf target=core2") + + help_msg = ( + "help([[Name : libdwarf]])" + "help([[Version: 20130729]])" + "help([[Target : core2]])" + "depends_on(" + ) + assert help_msg in "".join(content) + @pytest.mark.parametrize("config_name", ["exclude", "blacklist"]) def test_exclude(self, modulefile_content, module_configuration, config_name): """Tests excluding the generation of selected modules.""" diff --git a/lib/spack/spack/test/modules/tcl.py b/lib/spack/spack/test/modules/tcl.py index f91a55691f..5b60fba785 100644 --- a/lib/spack/spack/test/modules/tcl.py +++ b/lib/spack/spack/test/modules/tcl.py @@ -123,6 +123,34 @@ class TestTcl(object): assert len([x for x in content if 'append-path --delim " " SPACE "qux"' in x]) == 1 assert len([x for x in content if 'remove-path --delim " " SPACE "qux"' in x]) == 1 + def test_help_message(self, modulefile_content, module_configuration): + """Tests the generation of module help message.""" + + module_configuration("autoload_direct") + content = modulefile_content("mpileaks target=core2") + + help_msg = ( + "proc ModulesHelp { } {" + ' puts stderr "Name : mpileaks"' + ' puts stderr "Version: 2.3"' + ' puts stderr "Target : core2"' + ' puts stderr ""' + ' puts stderr "Mpileaks is a mock package that passes audits"' + "}" + ) + assert help_msg in "".join(content) + + content = modulefile_content("libdwarf target=core2") + + help_msg = ( + "proc ModulesHelp { } {" + ' puts stderr "Name : libdwarf"' + ' puts stderr "Version: 20130729"' + ' puts stderr "Target : core2"' + "}" + ) + assert help_msg in "".join(content) + @pytest.mark.parametrize("config_name", ["exclude", "blacklist"]) def test_exclude(self, modulefile_content, module_configuration, config_name): """Tests excluding the generation of selected modules.""" -- cgit v1.2.3-70-g09d2