Skip to content
Snippets Groups Projects
tests.py 1.46 KiB
Newer Older
  • Learn to ignore specific revisions
  • Ashwin Kumar Karnad's avatar
    Ashwin Kumar Karnad committed
    import os
    import pytest
    
    import subprocess
    
    mod = importlib.import_module("install-mpsd-software-environment")
    
    Ashwin Kumar Karnad's avatar
    Ashwin Kumar Karnad committed
    
    
    Ashwin Kumar Karnad's avatar
    Ashwin Kumar Karnad committed
    def test_os_chdir():
        # create a temporary directory for testing
        temp_dir = "/tmp/test_os_chdir"
        os.mkdir(temp_dir)
    
    Ashwin Kumar Karnad's avatar
    Ashwin Kumar Karnad committed
        # initial current working directory
        initial_cwd = os.getcwd()
    
        # change to the temporary directory using os_chdir
    
        with mod.os_chdir(temp_dir):
    
    Ashwin Kumar Karnad's avatar
    Ashwin Kumar Karnad committed
            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)