diff --git a/manager/manager_cmds/external.py b/manager/manager_cmds/external.py index fbf86e19..10051953 100644 --- a/manager/manager_cmds/external.py +++ b/manager/manager_cmds/external.py @@ -53,7 +53,7 @@ def create_external_detected_spec(env, spec): return spack.detection.DetectedPackage(Spec(pruned_spec), prefix) -def assemble_dict_of_detected_externals(env, black_list, white_list): +def assemble_dict_of_detected_externals(env, exclude, include): external_spec_dict = {} active_env = ev.active_environment() @@ -70,11 +70,11 @@ def update_dictionary(env, spec): for spec in env.all_specs(): if spec.external: continue - if black_list: - if spec.name not in black_list: + if exclude: + if spec.name not in exclude: update_dictionary(env, spec) - elif white_list: - if spec.name in white_list: + elif include: + if spec.name in include: update_dictionary(env, spec) else: if not active_env.is_develop(spec): diff --git a/manager/manager_utils.py b/manager/manager_utils.py index a4f6531a..8f4cd270 100644 --- a/manager/manager_utils.py +++ b/manager/manager_utils.py @@ -35,7 +35,9 @@ def repl(match): def pruned_spec_string(spec, variants_to_omit=["dev_path=", "patches=", "build_system="]): full_spec = spec.format("{name}{@version}{%compiler}{variants}{arch=architecture}") - spec_components = full_spec.split(" ") + + # add spaces between variants so we can filter + spec_components = full_spec.replace("+", " +").replace("~", " ~").split(" ") def filter_func(entry): for v in variants_to_omit: diff --git a/tests/test_external.py b/tests/test_external.py index 36202d45..eeec8222 100644 --- a/tests/test_external.py +++ b/tests/test_external.py @@ -174,12 +174,12 @@ def impl_mock(*args): @pytest.mark.skip() -def test_firstTimeAddingExternal(tmpdir): +def test_firstTimeAddingExternal(tmpdir, monkeypatch, arg_capture_patch, on_moonlight): with tmpdir.as_cwd(): yaml_file = """spack: view: true specs: [mpileaks]""" - evaluate_external(tmpdir, yaml_file) + evaluate_external(tmpdir, yaml_file, monkeypatch, arg_capture_patch, on_moonlight) assert os.path.isfile("test/externals.yaml") with open("test/externals.yaml", "r") as f: yaml = syaml.load(f) @@ -188,7 +188,7 @@ def test_firstTimeAddingExternal(tmpdir): @pytest.mark.skip() -def test_addToExistingExternal(tmpdir): +def test_addToExistingExternal(tmpdir, monkeypatch, arg_capture_patch, on_moonlight): with tmpdir.as_cwd(): yaml_file = """spack: view: true @@ -202,7 +202,7 @@ def test_addToExistingExternal(tmpdir): f.write("packages:\n") f.write(str(ExtPackage("openmpi", "openmpi@4.0.3", "/path/to/other/view"))) - evaluate_external(tmpdir, yaml_file) + evaluate_external(tmpdir, yaml_file, monkeypatch, arg_capture_patch, on_moonlight) with open("test/externals.yaml", "r") as f: yaml = syaml.load(f)