Skip to content
Snippets Groups Projects

Draft: Add tests for run method

Merged Ashwin Kumar Karnad requested to merge run-tests-for-run into linux-debian11
+ 35
0
@@ -28,6 +28,41 @@ def test_os_chdir(tmp_path):
@@ -28,6 +28,41 @@ def test_os_chdir(tmp_path):
assert os.getcwd() == initial_cwd
assert os.getcwd() == initial_cwd
 
def test_run_method(tmp_path):
 
"""Run tests for run method."""
 
 
run = mod.run
 
 
# test a command with options:
 
assert run(["date", "+%Y-%m-%d"]).returncode == 0
 
assert run("date +%Y-%m-%d", shell=True).returncode == 0
 
 
# tests interacting with the file system
 
with mod.os_chdir(str(tmp_path)):
 
# ensure single string command works
 
assert run(("ls -l"), shell=True).returncode == 0
 
# test spaces are handled correctly:
 
assert run(["touch", "file1", "file2"]).returncode == 0
 
assert os.path.exists("file1")
 
assert os.path.exists("file2")
 
# test output is captured:
 
assert (
 
b"Hello, world!\n"
 
in run(["echo", "Hello, world!"], capture_output=True).stdout
 
)
 
 
# check exceptions
 
with pytest.raises(FileNotFoundError):
 
run(["doesnotexistcommand"])
 
 
# check error code is checked
 
# 1. expect this to parse: return code is non-zero, but we don't check
 
run(["ls", "/doesnotexist"]),
 
# 2. expect this to fail:
 
with pytest.raises(subprocess.CalledProcessError):
 
run(["ls", "/doesnotexist"], check=True)
 
 
def test_prepare_environment(tmp_path):
def test_prepare_environment(tmp_path):
"""Simulate running preparation of environment.
"""Simulate running preparation of environment.
Loading