diff --git a/nova/tests/functional/api/openstack/placement/fixtures.py b/nova/tests/functional/api/openstack/placement/fixtures.py index 5ab7aa26f..a5109838d 100644 --- a/nova/tests/functional/api/openstack/placement/fixtures.py +++ b/nova/tests/functional/api/openstack/placement/fixtures.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -import logging import os from gabbi import fixture @@ -38,25 +37,15 @@ class APIFixture(fixture.GabbiFixture): self.conf = None def start_fixture(self): - # Set up a logger for errors that will display to screen, - # otherwise gabbi failures can be hard to debug while doing - # TDD. Establish here but don't add until after the logging - # fixture is started, because that cares about handler - # ordering. - error_log = logging.StreamHandler() - error_log.setLevel(logging.ERROR) - # Set up stderr and stdout captures by directly driving the - # existing nova fixtures that do that. + # existing nova fixtures that do that. This captures the + # output that happens outside individual tests (for + # example database migrations). self.standard_logging_fixture = fixtures.StandardLogging() self.standard_logging_fixture.setUp() self.output_stream_fixture = fixtures.OutputStreamCapture() self.output_stream_fixture.setUp() - # add the error handler - # catastrophic error messages in a useful way - logging.getLogger().addHandler(error_log) - self.conf = CONF self.conf.set_override('auth_strategy', 'noauth2') # Be explicit about all three database connections to avoid diff --git a/nova/tests/functional/api/openstack/placement/test_placement_api.py b/nova/tests/functional/api/openstack/placement/test_placement_api.py index b81b6c071..9fadc70fd 100644 --- a/nova/tests/functional/api/openstack/placement/test_placement_api.py +++ b/nova/tests/functional/api/openstack/placement/test_placement_api.py @@ -14,6 +14,7 @@ import os from gabbi import driver +from nova.tests import fixtures as nova_fixtures from nova.tests.functional.api.openstack.placement import fixtures TESTS_DIR = 'gabbits' @@ -22,7 +23,14 @@ TESTS_DIR = 'gabbits' def load_tests(loader, tests, pattern): """Provide a TestSuite to the discovery process.""" test_dir = os.path.join(os.path.dirname(__file__), TESTS_DIR) + # These inner fixtures provide per test request output and log + # capture, for cleaner results reporting. + inner_fixtures = [ + nova_fixtures.OutputStreamCapture, + nova_fixtures.StandardLogging, + ] return driver.build_tests(test_dir, loader, host=None, test_loader_name=__name__, intercept=fixtures.setup_app, + inner_fixtures=inner_fixtures, fixture_module=fixtures) diff --git a/test-requirements.txt b/test-requirements.txt index e3efee6f5..c174d1191 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -24,7 +24,7 @@ testtools>=1.4.0 # MIT tempest-lib>=0.14.0 # Apache-2.0 bandit>=1.1.0 # Apache-2.0 openstackdocstheme>=1.5.0 # Apache-2.0 -gabbi>=1.25.0 # Apache-2.0 +gabbi>=1.26.1 # Apache-2.0 # vmwareapi driver specific dependencies oslo.vmware>=2.11.0 # Apache-2.0