X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/e09af1d4876cb1295785db9abb5f3d2d10323097..fe45b1b66c730f2546d78a7899375707c0816518:/sdk/python/tests/arvados_testutil.py diff --git a/sdk/python/tests/arvados_testutil.py b/sdk/python/tests/arvados_testutil.py index 71c9b178e7..dae3dd3b7b 100644 --- a/sdk/python/tests/arvados_testutil.py +++ b/sdk/python/tests/arvados_testutil.py @@ -1,6 +1,7 @@ #!/usr/bin/env python import arvados +import contextlib import errno import hashlib import httplib @@ -11,6 +12,7 @@ import os import pycurl import Queue import shutil +import sys import tempfile import unittest @@ -50,6 +52,17 @@ def mock_api_responses(api_client, body, codes, headers={}): def str_keep_locator(s): return '{}+{}'.format(hashlib.md5(s).hexdigest(), len(s)) +@contextlib.contextmanager +def redirected_streams(stdout=None, stderr=None): + orig_stdout, sys.stdout = sys.stdout, stdout or sys.stdout + orig_stderr, sys.stderr = sys.stderr, stderr or sys.stderr + try: + yield + finally: + sys.stdout = orig_stdout + sys.stderr = orig_stderr + + class FakeCurl: @classmethod def make(cls, code, body='', headers={}):