Skip to content
Snippets Groups Projects
Commit 8495e193 authored by Hans Fangohr's avatar Hans Fangohr Committed by Ashwin Kumar Karnad
Browse files

refactor: we may need this function to create a git repo again.

parent 7ca3c9c8
No related branches found
No related tags found
3 merge requests!19Move linux-debian11 into main,!17split one test into three,!9force `subprocess.run` to check return code is 0
This commit is part of merge request !17. Comments created here will be created in the context of that merge request.
...@@ -11,6 +11,35 @@ import pytest ...@@ -11,6 +11,35 @@ import pytest
mod = importlib.import_module("mpsd-software-environment") 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): def test_os_chdir(tmp_path):
"""Test the os_chdir context manager.""" """Test the os_chdir context manager."""
# create a temporary directory for testing # create a temporary directory for testing
...@@ -48,18 +77,7 @@ def test_prepare_environment(tmp_path): ...@@ -48,18 +77,7 @@ def test_prepare_environment(tmp_path):
# log that information. For this to work, we need to execute the command # 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 # within a directory tree that has a git repository at the same or high
# level. Let's create one: # level. Let's create one:
create_mock_git_repository(script_dir)
# 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
)
# now call the function we want to test # now call the function we want to test
result = mod.prepare_environment( result = mod.prepare_environment(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment