diff --git a/.testr.conf b/.testr.conf index 36d60093d..3ab1aaf93 100644 --- a/.testr.conf +++ b/.testr.conf @@ -1,5 +1,5 @@ [DEFAULT] -test_command=OS_STDOUT_CAPTURE=1 OS_STDERR_CAPTURE=1 OS_TEST_TIMEOUT=60 ${PYTHON:-python} -m subunit.run discover -t ./ ./ $LISTOPT $IDOPTION +test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} OS_TEST_TIMEOUT=60 ${PYTHON:-python} -m subunit.run discover -t ./ ./ $LISTOPT $IDOPTION test_id_option=--load-list $IDFILE test_list_option=--list diff --git a/ironicclient/tests/utils.py b/ironicclient/tests/utils.py index 3a109e498..2ac90fd01 100644 --- a/ironicclient/tests/utils.py +++ b/ironicclient/tests/utils.py @@ -17,8 +17,10 @@ import copy import datetime +import os import fixtures +from oslo_utils import strutils import six import testtools @@ -31,6 +33,15 @@ class BaseTestCase(testtools.TestCase): super(BaseTestCase, self).setUp() self.useFixture(fixtures.FakeLogger()) + # If enabled, stdout and/or stderr is captured and will appear in + # test results if that test fails. + if strutils.bool_from_string(os.environ.get('OS_STDOUT_CAPTURE')): + stdout = self.useFixture(fixtures.StringStream('stdout')).stream + self.useFixture(fixtures.MonkeyPatch('sys.stdout', stdout)) + if strutils.bool_from_string(os.environ.get('OS_STDERR_CAPTURE')): + stderr = self.useFixture(fixtures.StringStream('stderr')).stream + self.useFixture(fixtures.MonkeyPatch('sys.stderr', stderr)) + class FakeAPI(object): def __init__(self, responses):