From 36bf6c9009c32f7c171d62134f44dac1f0886b12 Mon Sep 17 00:00:00 2001 From: psakiev Date: Tue, 21 Feb 2023 10:00:50 -0700 Subject: [PATCH] Add unit-tests back --- lib/spack/spack/test/cmd/env.py | 17 +++++++++++++++++ lib/spack/spack/test/env.py | 18 ++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/lib/spack/spack/test/cmd/env.py b/lib/spack/spack/test/cmd/env.py index 19b53c05737..161c27efa81 100644 --- a/lib/spack/spack/test/cmd/env.py +++ b/lib/spack/spack/test/cmd/env.py @@ -3236,3 +3236,20 @@ def test_relative_view_path_on_command_line_is_made_absolute(tmpdir, config): env("create", "--with-view", "view", "--dir", "env") environment = ev.Environment(os.path.join(".", "env")) assert os.path.samefile("view", environment.default_view.root) + + +def test_environment_created_in_users_location(mutable_config, tmpdir): + """Test that an environment is created in a location based on the config""" + spack.config.set("config:environments_root", str(tmpdir.join("envs"))) + env_dir = spack.config.get("config:environments_root") + + assert tmpdir.strpath in env_dir + assert not os.path.isdir(env_dir) + + dir_name = "user_env" + env("create", dir_name) + out = env("list") + + assert dir_name in out + assert env_dir in ev.root(dir_name) + assert os.path.isdir(os.path.join(env_dir, dir_name)) diff --git a/lib/spack/spack/test/env.py b/lib/spack/spack/test/env.py index 83538e7d717..4d8d7e7299a 100644 --- a/lib/spack/spack/test/env.py +++ b/lib/spack/spack/test/env.py @@ -143,3 +143,21 @@ def test_user_view_path_is_not_canonicalized_in_yaml(tmpdir, config): snd = ev.Environment(env_path) assert snd.yaml["spack"]["view"] == view assert os.path.samefile(snd.default_view.root, absolute_view) + + +def test_environment_cant_modify_environments_root(tmpdir): + filename = str(tmpdir.join("spack.yaml")) + with open(filename, "w") as f: + f.write( + """\ + spack: + config: + environments_root: /a/black/hole + view: false + specs: [] + """ + ) + with tmpdir.as_cwd(): + with pytest.raises(ev.SpackEnvironmentError): + e = ev.Environment(tmpdir.strpath) + ev.activate(e)