diff options
author | Peter Astrand <astrand@lysator.liu.se> | 2006-07-14 14:04:45 (GMT) |
---|---|---|
committer | Peter Astrand <astrand@lysator.liu.se> | 2006-07-14 14:04:45 (GMT) |
commit | 7d1d43630e117fdc3ccb0a8c6a9b31ab7d443016 (patch) | |
tree | 4df183d0c83a0bbe980f6cb76de64a9f2fef0c79 | |
parent | 8c051da2cfee6f0347970386465fb0831a4e179f (diff) | |
download | cpython-7d1d43630e117fdc3ccb0a8c6a9b31ab7d443016.zip cpython-7d1d43630e117fdc3ccb0a8c6a9b31ab7d443016.tar.gz cpython-7d1d43630e117fdc3ccb0a8c6a9b31ab7d443016.tar.bz2 |
Bug #1223937: CalledProcessError.errno -> CalledProcessError.returncode.
-rw-r--r-- | Doc/lib/libsubprocess.tex | 7 | ||||
-rw-r--r-- | Lib/subprocess.py | 21 | ||||
-rw-r--r-- | Lib/test/test_subprocess.py | 2 | ||||
-rw-r--r-- | Misc/NEWS | 4 |
4 files changed, 21 insertions, 13 deletions
diff --git a/Doc/lib/libsubprocess.tex b/Doc/lib/libsubprocess.tex index bde92eb..9ea44dc 100644 --- a/Doc/lib/libsubprocess.tex +++ b/Doc/lib/libsubprocess.tex @@ -140,7 +140,7 @@ The arguments are the same as for the Popen constructor. Example: Run command with arguments. Wait for command to complete. If the exit code was zero then return, otherwise raise \exception{CalledProcessError.} The \exception{CalledProcessError} object will have the return code in the -\member{errno} attribute. +\member{returncode} attribute. The arguments are the same as for the Popen constructor. Example: @@ -164,9 +164,8 @@ should prepare for \exception{OSError} exceptions. A \exception{ValueError} will be raised if \class{Popen} is called with invalid arguments. -check_call() will raise \exception{CalledProcessError}, which is a -subclass of \exception{OSError}, if the called process returns a -non-zero return code. +check_call() will raise \exception{CalledProcessError}, if the called +process returns a non-zero return code. \subsubsection{Security} diff --git a/Lib/subprocess.py b/Lib/subprocess.py index 1fa036e..64846a6 100644 --- a/Lib/subprocess.py +++ b/Lib/subprocess.py @@ -121,7 +121,7 @@ check_call(*popenargs, **kwargs): Run command with arguments. Wait for command to complete. If the exit code was zero then return, otherwise raise CalledProcessError. The CalledProcessError object will have the - return code in the errno attribute. + return code in the returncode attribute. The arguments are the same as for the Popen constructor. Example: @@ -141,8 +141,8 @@ should prepare for OSErrors. A ValueError will be raised if Popen is called with invalid arguments. -check_call() will raise CalledProcessError, which is a subclass of -OSError, if the called process returns a non-zero return code. +check_call() will raise CalledProcessError, if the called process +returns a non-zero return code. Security @@ -360,11 +360,16 @@ import types import traceback # Exception classes used by this module. -class CalledProcessError(OSError): +class CalledProcessError(Exception): """This exception is raised when a process run by check_call() returns a non-zero exit status. The exit status will be stored in the - errno attribute. This exception is a subclass of - OSError.""" + returncode attribute.""" + def __init__(self, returncode, cmd): + self.returncode = returncode + self.cmd = cmd + def __str__(self): + return "Command '%s' returned non-zero exit status %d" % (self.cmd, self.returncode) + if mswindows: import threading @@ -442,7 +447,7 @@ def check_call(*popenargs, **kwargs): """Run command with arguments. Wait for command to complete. If the exit code was zero then return, otherwise raise CalledProcessError. The CalledProcessError object will have the - return code in the errno attribute. + return code in the returncode attribute. The arguments are the same as for the Popen constructor. Example: @@ -453,7 +458,7 @@ def check_call(*popenargs, **kwargs): if cmd is None: cmd = popenargs[0] if retcode: - raise CalledProcessError(retcode, "Command %s returned non-zero exit status" % cmd) + raise CalledProcessError(retcode, cmd) return retcode diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py index 483e202..f2c3083 100644 --- a/Lib/test/test_subprocess.py +++ b/Lib/test/test_subprocess.py @@ -68,7 +68,7 @@ class ProcessTestCase(unittest.TestCase): subprocess.check_call([sys.executable, "-c", "import sys; sys.exit(47)"]) except subprocess.CalledProcessError, e: - self.assertEqual(e.errno, 47) + self.assertEqual(e.returncode, 47) else: self.fail("Expected CalledProcessError") @@ -576,6 +576,10 @@ Extension Modules Library ------- +- Bug #1223937: subprocess.CalledProcessError reports the exit status + of the process using the returncode attribute, instead of + abusing errno. + - Patch #1475231: ``doctest`` has a new ``SKIP`` option, which causes a doctest to be skipped (the code is not run, and the expected output or exception is ignored). |