Merge "test cleanup: Use oslotest's CaptureOutput fixture"

This commit is contained in:
Zuul 2019-11-22 23:17:28 +00:00 committed by Gerrit Code Review
commit e20d529dbf
3 changed files with 4 additions and 51 deletions

View File

@ -48,6 +48,7 @@ from oslo_utils import timeutils
from oslo_versionedobjects import fixture as ovo_fixture from oslo_versionedobjects import fixture as ovo_fixture
from oslotest import mock_fixture from oslotest import mock_fixture
from oslotest import moxstubout from oslotest import moxstubout
from oslotest import output
from oslotest import timeout from oslotest import timeout
import six import six
from six.moves import builtins from six.moves import builtins
@ -192,8 +193,7 @@ class TestCase(testtools.TestCase):
self.useFixture(fixtures.TempHomeDir()) self.useFixture(fixtures.TempHomeDir())
self.useFixture(log_fixture.get_logging_handle_error_fixture()) self.useFixture(log_fixture.get_logging_handle_error_fixture())
self.output = nova_fixtures.OutputStreamCapture() self.output = self.useFixture(output.CaptureOutput())
self.useFixture(self.output)
self.stdlog = nova_fixtures.StandardLogging() self.stdlog = nova_fixtures.StandardLogging()
self.useFixture(self.stdlog) self.useFixture(self.stdlog)

View File

@ -204,34 +204,6 @@ class StandardLogging(fixtures.Fixture):
self.logger._output.truncate(0) self.logger._output.truncate(0)
class OutputStreamCapture(fixtures.Fixture):
"""Capture output streams during tests.
This fixture captures errant printing to stderr / stdout during
the tests and lets us see those streams at the end of the test
runs instead. Useful to see what was happening during failed
tests.
"""
def setUp(self):
super(OutputStreamCapture, self).setUp()
if os.environ.get('OS_STDOUT_CAPTURE') in _TRUE_VALUES:
self.out = self.useFixture(fixtures.StringStream('stdout'))
self.useFixture(
fixtures.MonkeyPatch('sys.stdout', self.out.stream))
if os.environ.get('OS_STDERR_CAPTURE') in _TRUE_VALUES:
self.err = self.useFixture(fixtures.StringStream('stderr'))
self.useFixture(
fixtures.MonkeyPatch('sys.stderr', self.err.stream))
@property
def stderr(self):
return self.err._details["stderr"].as_text()
@property
def stdout(self):
return self.out._details["stdout"].as_text()
class DatabasePoisonFixture(fixtures.Fixture): class DatabasePoisonFixture(fixtures.Fixture):
def setUp(self): def setUp(self):
super(DatabasePoisonFixture, self).setUp() super(DatabasePoisonFixture, self).setUp()

View File

@ -15,7 +15,6 @@
# under the License. # under the License.
import copy import copy
import sys
import fixtures as fx import fixtures as fx
import futurist import futurist
@ -26,6 +25,7 @@ from oslo_log import log as logging
from oslo_utils.fixture import uuidsentinel as uuids from oslo_utils.fixture import uuidsentinel as uuids
from oslo_utils import timeutils from oslo_utils import timeutils
from oslo_utils import uuidutils from oslo_utils import uuidutils
from oslotest import output
import sqlalchemy import sqlalchemy
import testtools import testtools
@ -89,25 +89,6 @@ class TestConfFixture(testtools.TestCase):
self._test_override() self._test_override()
class TestOutputStream(testtools.TestCase):
"""Ensure Output Stream capture works as expected.
This has the added benefit of providing a code example of how you
can manipulate the output stream in your own tests.
"""
def test_output(self):
self.useFixture(fx.EnvironmentVariable('OS_STDOUT_CAPTURE', '1'))
self.useFixture(fx.EnvironmentVariable('OS_STDERR_CAPTURE', '1'))
out = self.useFixture(fixtures.OutputStreamCapture())
sys.stdout.write("foo")
sys.stderr.write("bar")
self.assertEqual("foo", out.stdout)
self.assertEqual("bar", out.stderr)
# TODO(sdague): nuke the out and err buffers so it doesn't
# make it to testr
class TestLogging(testtools.TestCase): class TestLogging(testtools.TestCase):
def test_default_logging(self): def test_default_logging(self):
stdlog = self.useFixture(fixtures.StandardLogging()) stdlog = self.useFixture(fixtures.StandardLogging())
@ -151,7 +132,7 @@ class TestOSAPIFixture(testtools.TestCase):
@mock.patch('nova.objects.Service.create') @mock.patch('nova.objects.Service.create')
def test_responds_to_version(self, mock_service_create, mock_get): def test_responds_to_version(self, mock_service_create, mock_get):
"""Ensure the OSAPI server responds to calls sensibly.""" """Ensure the OSAPI server responds to calls sensibly."""
self.useFixture(fixtures.OutputStreamCapture()) self.useFixture(output.CaptureOutput())
self.useFixture(fixtures.StandardLogging()) self.useFixture(fixtures.StandardLogging())
self.useFixture(conf_fixture.ConfFixture()) self.useFixture(conf_fixture.ConfFixture())
self.useFixture(fixtures.RPCFixture('nova.test')) self.useFixture(fixtures.RPCFixture('nova.test'))