Newer
Older
import importlib
mod = importlib.import_module("install-mpsd-software-environment")
def test_os_chdir():
# create a temporary directory for testing
temp_dir = "/tmp/test_os_chdir"
os.mkdir(temp_dir)
# initial current working directory
initial_cwd = os.getcwd()
# change to the temporary directory using os_chdir
with mod.os_chdir(temp_dir):
assert os.getcwd() == os.path.abspath(temp_dir)
# current working directory should be back to initial directory
assert os.getcwd() == initial_cwd
# clean up the temporary directory
os.rmdir(temp_dir)
def test_prepare_env():
# simulate running ./install-software-environment.py --release dev-23a --target-directory /tmp/test_prepare_env
mod.prepare_env("dev-23a", "/tmp/test_prepare_env", False)
# check if the directory exists
assert os.path.exists("/tmp/test_prepare_env")
# check for spack-environments directory
assert os.listdir("/tmp/test_prepare_env") == ["spack-environments"]
# check if the git branch is correctl checked out
assert (
subprocess.run(
"cd /tmp/test_prepare_env/spack-environments && git branch",
shell=True,
capture_output=True,
).stdout.decode("utf-8")
== "* dev-23a\n"
)
# make sure running the command again raises ValueError
with pytest.raises(ValueError):
mod.prepare_env("dev-23a", "/tmp/test_prepare_env", False)