Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(541)

Side by Side Diff: subprocess2.py

Issue 6882127: Make subprocess2.check_call() compliant with subprocess.check_call(). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: Created 9 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « checkout.py ('k') | tests/subprocess2_test.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # coding=utf8 1 # coding=utf8
2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2011 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 """Collection of subprocess wrapper functions. 5 """Collection of subprocess wrapper functions.
6 6
7 In theory you shouldn't need anything else in subprocess, or this module failed. 7 In theory you shouldn't need anything else in subprocess, or this module failed.
8 """ 8 """
9 9
10 from __future__ import with_statement 10 from __future__ import with_statement
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 249
250 Automatically convert stdout=PIPE or stderr=PIPE to VOID. 250 Automatically convert stdout=PIPE or stderr=PIPE to VOID.
251 """ 251 """
252 if kwargs.get('stdout') == PIPE: 252 if kwargs.get('stdout') == PIPE:
253 kwargs['stdout'] = VOID 253 kwargs['stdout'] = VOID
254 if kwargs.get('stderr') == PIPE: 254 if kwargs.get('stderr') == PIPE:
255 kwargs['stderr'] = VOID 255 kwargs['stderr'] = VOID
256 return communicate(args, **kwargs)[1] 256 return communicate(args, **kwargs)[1]
257 257
258 258
259 def check_call(args, **kwargs): 259 def check_call_out(args, **kwargs):
260 """Improved version of subprocess.check_call(). 260 """Improved version of subprocess.check_call().
261 261
262 Returns (stdout, stderr), unlike subprocess.check_call(). 262 Returns (stdout, stderr), unlike subprocess.check_call().
263 """ 263 """
264 out, returncode = communicate(args, **kwargs) 264 out, returncode = communicate(args, **kwargs)
265 if returncode: 265 if returncode:
266 raise CalledProcessError( 266 raise CalledProcessError(
267 returncode, args, kwargs.get('cwd'), out[0], out[1]) 267 returncode, args, kwargs.get('cwd'), out[0], out[1])
268 return out 268 return out
269 269
270 270
271 def check_call(args, **kwargs):
272 """Emulate subprocess.check_call()."""
273 check_call_out(args, **kwargs)
274 return 0
275
276
271 def capture(args, **kwargs): 277 def capture(args, **kwargs):
272 """Captures stdout of a process call and returns it. 278 """Captures stdout of a process call and returns it.
273 279
274 Returns stdout. 280 Returns stdout.
275 281
276 - Discards returncode. 282 - Discards returncode.
277 - Discards stderr. By default sets stderr=STDOUT. 283 - Discards stderr. By default sets stderr=STDOUT.
278 - Blocks stdin by default since no output will be visible. 284 - Blocks stdin by default since no output will be visible.
279 """ 285 """
280 if kwargs.get('stdin') is None: 286 if kwargs.get('stdin') is None:
281 kwargs['stdin'] = VOID 287 kwargs['stdin'] = VOID
282 if kwargs.get('stdout') is None: 288 if kwargs.get('stdout') is None:
283 kwargs['stdout'] = PIPE 289 kwargs['stdout'] = PIPE
284 if kwargs.get('stderr') is None: 290 if kwargs.get('stderr') is None:
285 kwargs['stderr'] = STDOUT 291 kwargs['stderr'] = STDOUT
286 return communicate(args, **kwargs)[0][0] 292 return communicate(args, **kwargs)[0][0]
287 293
288 294
289 def check_output(args, **kwargs): 295 def check_output(args, **kwargs):
290 """Captures stdout of a process call and returns it. 296 """Emulates subprocess.check_output().
291 297
292 Returns stdout. 298 Captures stdout of a process call and returns stdout only.
293 299
294 - Discards stderr. By default sets stderr=STDOUT. 300 - Discards stderr. By default sets stderr=STDOUT.
295 - Throws if return code is not 0. 301 - Throws if return code is not 0.
296 - Works even prior to python 2.7. 302 - Works even prior to python 2.7.
297 - Blocks stdin by default since no output will be visible. 303 - Blocks stdin by default since no output will be visible.
298 """ 304 """
299 if kwargs.get('stdin') is None: 305 if kwargs.get('stdin') is None:
300 kwargs['stdin'] = VOID 306 kwargs['stdin'] = VOID
301 if kwargs.get('stdout') is None: 307 if kwargs.get('stdout') is None:
302 kwargs['stdout'] = PIPE 308 kwargs['stdout'] = PIPE
303 if kwargs.get('stderr') is None: 309 if kwargs.get('stderr') is None:
304 kwargs['stderr'] = STDOUT 310 kwargs['stderr'] = STDOUT
305 return check_call(args, **kwargs)[0] 311 return check_call_out(args, **kwargs)[0]
OLDNEW
« no previous file with comments | « checkout.py ('k') | tests/subprocess2_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698