diff --git a/cinder/tests/unit/test_fixtures.py b/cinder/tests/unit/test_fixtures.py new file mode 100644 index 00000000000..79d159ebfdf --- /dev/null +++ b/cinder/tests/unit/test_fixtures.py @@ -0,0 +1,59 @@ +# Copyright 2010 United States Government as represented by the +# Administrator of the National Aeronautics and Space Administration. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import fixtures as fx +from oslo_log import log as logging +import testtools + +from cinder.tests import fixtures + + +class TestLogging(testtools.TestCase): + def test_default_logging(self): + stdlog = self.useFixture(fixtures.StandardLogging()) + root = logging.getLogger() + # there should be a null handler as well at DEBUG + self.assertEqual(2, len(root.handlers), root.handlers) + log = logging.getLogger(__name__) + log.info("at info") + log.debug("at debug") + self.assertIn("at info", stdlog.logger.output) + self.assertNotIn("at debug", stdlog.logger.output) + + # broken debug messages should still explode, even though we + # aren't logging them in the regular handler + self.assertRaises(TypeError, log.debug, "this is broken %s %s", "foo") + + # and, ensure that one of the terrible log messages isn't + # output at info + warn_log = logging.getLogger('migrate.versioning.api') + warn_log.info("warn_log at info, should be skipped") + warn_log.error("warn_log at error") + self.assertIn("warn_log at error", stdlog.logger.output) + self.assertNotIn("warn_log at info", stdlog.logger.output) + + def test_debug_logging(self): + self.useFixture(fx.EnvironmentVariable('OS_DEBUG', '1')) + + stdlog = self.useFixture(fixtures.StandardLogging()) + root = logging.getLogger() + # there should no longer be a null handler + self.assertEqual(1, len(root.handlers), root.handlers) + log = logging.getLogger(__name__) + log.info("at info") + log.debug("at debug") + self.assertIn("at info", stdlog.logger.output) + self.assertIn("at debug", stdlog.logger.output)