X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/fee8873d0c5eeec1bd838161357679de1a3fe0cb..7e7ada63bca240416584871398076c1bafc90f76:/services/nodemanager/tests/test_arguments.py diff --git a/services/nodemanager/tests/test_arguments.py b/services/nodemanager/tests/test_arguments.py index e4749ce01c..e325e52287 100644 --- a/services/nodemanager/tests/test_arguments.py +++ b/services/nodemanager/tests/test_arguments.py @@ -1,42 +1,30 @@ #!/usr/bin/env python +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 -import multiprocessing +import io import os import sys import tempfile import unittest import arvnodeman.launcher as nodeman +from . import testutil class ArvNodemArgumentsTestCase(unittest.TestCase): def run_nodeman(self, args): return nodeman.main(args) - def run_nodeman_process(self, args=[]): - _, stdout_path = tempfile.mkstemp() - _, stderr_path = tempfile.mkstemp() - def wrap(): - def wrapper(*args, **kwargs): - sys.stdout = open(stdout_path, 'w') - sys.stderr = open(stderr_path, 'w') - nodeman.main(*args, **kwargs) - return wrapper - p = multiprocessing.Process(target=wrap(), args=(args,)) - 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_nodeman(['-x=unknown']) def test_version_argument(self): - exitcode, out, err = self.run_nodeman_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 testutil.redirected_streams(stdout=out, stderr=err): + with self.assertRaises(SystemExit): + self.run_nodeman(['--version']) + self.assertEqual(out.getvalue(), '') + self.assertRegexpMatches(err.getvalue(), "[0-9]+\.[0-9]+\.[0-9]+")