X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/fee8873d0c5eeec1bd838161357679de1a3fe0cb..a8b210d2bb5b10e6583abf295b99788b3dff7479:/sdk/python/tests/test_arv_keepdocker.py diff --git a/sdk/python/tests/test_arv_keepdocker.py b/sdk/python/tests/test_arv_keepdocker.py index 27081afc1d..bb94db560f 100644 --- a/sdk/python/tests/test_arv_keepdocker.py +++ b/sdk/python/tests/test_arv_keepdocker.py @@ -1,13 +1,14 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -import multiprocessing +import io import os import sys import tempfile import unittest import arvados.commands.keepdocker as arv_keepdocker +import arvados_testutil as tutil class ArvKeepdockerTestCase(unittest.TestCase): @@ -15,32 +16,15 @@ class ArvKeepdockerTestCase(unittest.TestCase): sys.argv = ['arv-keepdocker'] + args return arv_keepdocker.main() - def run_arv_keepdocker_process(self, args): - _, stdout_path = tempfile.mkstemp() - _, stderr_path = tempfile.mkstemp() - def wrap(): - def wrapper(): - sys.argv = ['arv-keepdocker'] + args - sys.stdout = open(stdout_path, 'w') - sys.stderr = open(stderr_path, 'w') - arv_keepdocker.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_keepdocker(['-x=unknown']) def test_version_argument(self): - exitcode, out, err = self.run_arv_keepdocker_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_keepdocker(['--version']) + self.assertEqual(out.getvalue(), '') + self.assertRegexpMatches(err.getvalue(), "[0-9]+\.[0-9]+\.[0-9]+")