diff --git a/test/systemvm/__init__.py b/test/systemvm/__init__.py index fa79acfda24..b47c4766bf0 100644 --- a/test/systemvm/__init__.py +++ b/test/systemvm/__init__.py @@ -16,6 +16,34 @@ # under the License. from __future__ import with_statement + +# install subprocess.check_output for 2.4 =< python < 2.7 +try: + from subprocess import check_output +except (NameError, ImportError): + import subprocess + def check_output(*popenargs, **kwargs): + r"""Run command with arguments and return its output as a byte string. + + Backported from Python 2.7 as it's implemented as pure python on stdlib. + + >>> check_output(['/usr/bin/python', '--version']) + Python 2.6.2 + """ + process = subprocess.Popen(stdout=subprocess.PIPE, *popenargs, **kwargs) + output, unused_err = process.communicate() + retcode = process.poll() + if retcode: + cmd = kwargs.get("args") + if cmd is None: + cmd = popenargs[0] + error = subprocess.CalledProcessError(retcode, cmd) + error.output = output + raise error + return output + subprocess.check_output + + from vagrant import Vagrant from unittest import TestCase from paramiko.config import SSHConfig