diff --git a/tests.py b/tests.py index d50667dfaada659013561f1c63a46072d4abfb56..b2b8f6ed65c2b8427b0e1292f91d25a1a502cdea 100644 --- a/tests.py +++ b/tests.py @@ -11,6 +11,35 @@ import pytest mod = importlib.import_module("mpsd-software-environment") +def create_mock_git_repository(target_directory, create_directory=True): + """ + Create a git repository in the directory `target_directory`. + + Arguments + --------- + target_directory : pathlib.Path + - path at which the root of the repository should be located (i.e. `.git` folder) + + create_directory : bool + - create `target_directory` and parent directories if True + + """ + # create directory first + if create_directory: + target_directory.mkdir(parents=True) + + # then create git repository: + with mod.os_chdir(str(target_directory)): + subprocess.run("git init .", shell=True, check=True) + subprocess.run("echo 'fake content' > readme.txt", shell=True, check=True) + subprocess.run("git add readme.txt", shell=True, check=True) + subprocess.run("pwd", shell=True) + subprocess.run( + 'git commit -m "first commit" readme.txt', shell=True, check=True + ) + + + def test_os_chdir(tmp_path): """Test the os_chdir context manager.""" # create a temporary directory for testing @@ -48,18 +77,7 @@ def test_prepare_environment(tmp_path): # log that information. For this to work, we need to execute the command # within a directory tree that has a git repository at the same or high # level. Let's create one: - - # create directory first - script_dir.mkdir(parents=True) - # then create git repository: - with mod.os_chdir(str(script_dir)): - subprocess.run("git init .", shell=True, check=True) - subprocess.run("echo 'fake content' > readme.txt", shell=True, check=True) - subprocess.run("git add readme.txt", shell=True, check=True) - subprocess.run("pwd", shell=True) - subprocess.run( - 'git commit -m "first commit" readme.txt', shell=True, check=True - ) + create_mock_git_repository(script_dir) # now call the function we want to test result = mod.prepare_environment(