X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/fee8873d0c5eeec1bd838161357679de1a3fe0cb..8e6cd14b7884a691a110110b0f366577437c6d9e:/sdk/python/tests/test_arv_run.py diff --git a/sdk/python/tests/test_arv_run.py b/sdk/python/tests/test_arv_run.py index 7afe52bce8..3d04d27228 100644 --- a/sdk/python/tests/test_arv_run.py +++ b/sdk/python/tests/test_arv_run.py @@ -1,45 +1,29 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -import multiprocessing +import io import os import sys import tempfile import unittest import arvados.commands.run as arv_run +import arvados_testutil as tutil class ArvRunTestCase(unittest.TestCase): def run_arv_run(self, args): sys.argv = ['arv-run'] + args return arv_run.main() - def run_arv_run_process(self, args): - _, stdout_path = tempfile.mkstemp() - _, stderr_path = tempfile.mkstemp() - def wrap(): - def wrapper(): - sys.argv = ['arv-run'] + args - sys.stdout = open(stdout_path, 'w') - sys.stderr = open(stderr_path, 'w') - arv_run.main() - return wrapper - p = multiprocessing.Process(target=wrap()) - p.start() - p.join() - out = open(stdout_path, 'r').read() - err = open(stderr_path, 'r').read() - os.unlink(stdout_path) - os.unlink(stderr_path) - return p.exitcode, out, err - def test_unsupported_arg(self): with self.assertRaises(SystemExit): self.run_arv_run(['-x=unknown']) def test_version_argument(self): - exitcode, out, err = self.run_arv_run_process(['--version']) - self.assertEqual(0, exitcode) - self.assertEqual('', out) - self.assertNotEqual('', err) - self.assertRegexpMatches(err, "[0-9]+\.[0-9]+\.[0-9]+") + err = io.BytesIO() + out = io.BytesIO() + with tutil.redirected_streams(stdout=out, stderr=err): + with self.assertRaises(SystemExit): + self.run_arv_run(['--version']) + self.assertEqual(out.getvalue(), '') + self.assertRegexpMatches(err.getvalue(), "[0-9]+\.[0-9]+\.[0-9]+")