From: Sebastian Wagner Date: Thu, 28 May 2020 11:10:28 +0000 (+0200) Subject: orchestra/run: py2 fix for copy_and_close X-Git-Tag: 1.1.0~95^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=7c575762f7d6f4f1a28e95dc03d4c7e61f1a6ed7;p=teuthology.git orchestra/run: py2 fix for copy_and_close Signed-off-by: Sebastian Wagner --- diff --git a/teuthology/orchestra/run.py b/teuthology/orchestra/run.py index 70128ce622..edf905ed04 100644 --- a/teuthology/orchestra/run.py +++ b/teuthology/orchestra/run.py @@ -328,6 +328,8 @@ def copy_and_close(src, fdst): src = io.StringIO(src) else: src = io.BytesIO(src) + elif not PY3 and isinstance(src, unicode): # noqa: F821 + src = io.StringIO(src) shutil.copyfileobj(src, fdst) fdst.close() diff --git a/teuthology/orchestra/test/test_run.py b/teuthology/orchestra/test/test_run.py index f87909cf21..e7a5462340 100644 --- a/teuthology/orchestra/test/test_run.py +++ b/teuthology/orchestra/test/test_run.py @@ -6,7 +6,7 @@ import socket from mock import MagicMock, patch from pytest import raises -from six import ensure_str, ensure_binary +from six import ensure_str, ensure_binary, PY2 from teuthology.orchestra import run from teuthology.exceptions import (CommandCrashedError, CommandFailedError, @@ -260,6 +260,14 @@ class TestRun(object): assert code == 0 assert proc.exitstatus == 0 + def test_copy_and_close(self): + run.copy_and_close(None, MagicMock()) + run.copy_and_close('', MagicMock()) + run.copy_and_close(b'', MagicMock()) + if PY2: + run.copy_and_close(u'', MagicMock()) + + class TestQuote(object): def test_quote_simple(self):