For a python pytest file with contents of:
import os
def test_that():
print("step 1: should work")
os.system("echo hello")
print("step 2: should fail")
os.system("asdf_failing_non_existing_command")
and an invocation of pytest like:
pytest -s testing.py
The output is:
1 passed
I would expect the test to fail. How can I get the exit code from os system call to influence the test failure and actually fail the test?
How can I get the exit code from os system call to influence the test failure and actually fail the test?
Don't use os.system
. (You almost never need it, and the docs are pretty strong on using subprocess
instead).
With subprocess:
import subprocess
subprocess.run(["echo", "hi"], check=True)
subprocess.run(["asdfasdfasdfdas"], check=True)
Or you can use os.system and check yourself, but why reinvent the wheel?