Make subprocess2.call() returned values to be the same as subprocess.call().
Renamed the previous subprocess2.call() to subprocess2.communicate().
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/6877005
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@81976 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/subprocess2.py b/subprocess2.py
index c743b03..64a23a8 100644
--- a/subprocess2.py
+++ b/subprocess2.py
@@ -192,7 +192,7 @@
raise
-def call(args, timeout=None, **kwargs):
+def communicate(args, timeout=None, **kwargs):
"""Wraps subprocess.Popen().communicate().
Returns ((stdout, stderr), returncode).
@@ -244,12 +244,24 @@
return out, proc.returncode
+def call(args, **kwargs):
+ """Emulates subprocess.call().
+
+ Automatically convert stdout=PIPE or stderr=PIPE to VOID.
+ """
+ if kwargs.get('stdout') == PIPE:
+ kwargs['stdout'] = VOID
+ if kwargs.get('stderr') == PIPE:
+ kwargs['stderr'] = VOID
+ return communicate(args, **kwargs)[1]
+
+
def check_call(args, **kwargs):
"""Improved version of subprocess.check_call().
Returns (stdout, stderr), unlike subprocess.check_call().
"""
- out, returncode = call(args, **kwargs)
+ out, returncode = communicate(args, **kwargs)
if returncode:
raise CalledProcessError(
returncode, args, kwargs.get('cwd'), out[0], out[1])
@@ -271,7 +283,7 @@
kwargs['stdout'] = PIPE
if kwargs.get('stderr') is None:
kwargs['stderr'] = STDOUT
- return call(args, **kwargs)[0][0]
+ return communicate(args, **kwargs)[0][0]
def check_output(args, **kwargs):