there are two ways to check if a subprocess.run() call fails:
Pass the check=True kwarg to the function, which will make it raise a CalledProcessError if the return code of the underlying subprocess is nonzero (i.e. subprocess.run('exit 1', check=True) will raise a CalledProcessError), and
If you don't want to immediately raise the error, set check=False, and then save the return value of subprocess.run() to a variable (e.g. result). Then, when you're ready, you can run result.check_returncode(), which will raise the CalledProcessError if the return code is nonzero.
We use the second method here, since we want to raise different errors based on the output of cigetcert.
Fixes #570.
This PR also adds two new unit tests to check the new logic, as well as a minor bug fix for the existing getProxy tests themselves.
Note: According to the docs:
there are two ways to check if a
subprocess.run()
call fails:check=True
kwarg to the function, which will make it raise aCalledProcessError
if the return code of the underlying subprocess is nonzero (i.e.subprocess.run('exit 1', check=True)
will raise aCalledProcessError
), andcheck=False
, and then save the return value ofsubprocess.run()
to a variable (e.g.result
). Then, when you're ready, you can runresult.check_returncode()
, which will raise theCalledProcessError
if the return code is nonzero.We use the second method here, since we want to raise different errors based on the output of
cigetcert
.