From 8661dd1a3190990205099f545e1b6c14cf0417ce Mon Sep 17 00:00:00 2001 From: Ian Wienand Date: Fri, 10 Jun 2016 14:32:07 +1000 Subject: [PATCH] Introspect logging testing more This adds some fixtures to ensure the log output is what we expect, along with ensuring we test the operation of the debug environment variables. Change-Id: I01c36299539b15a633b9307da5a348a5ae4e2563 --- diskimage_builder/tests/test_loggingconfig.py | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/diskimage_builder/tests/test_loggingconfig.py b/diskimage_builder/tests/test_loggingconfig.py index 472b9fb6..94639787 100644 --- a/diskimage_builder/tests/test_loggingconfig.py +++ b/diskimage_builder/tests/test_loggingconfig.py @@ -12,6 +12,7 @@ # License for the specific language governing permissions and limitations # under the License. +import fixtures import logging import testtools @@ -21,9 +22,28 @@ from diskimage_builder import logging_config class TestLoggingConfig(testtools.TestCase): def test_defaults(self): + self.out = self.useFixture(fixtures.StringStream('stdout')) + self.useFixture( + fixtures.MonkeyPatch('sys.stdout', self.out.stream)) + + self.err = self.useFixture(fixtures.StringStream('stderr')) + self.useFixture( + fixtures.MonkeyPatch('sys.stderr', self.err.stream)) + + self.useFixture(fixtures.EnvironmentVariable('DIB_DEBUG_TRACE', '1')) + logging_config.setup() log = logging.getLogger(__name__) log.debug("Debug Message") + self.assertIn("Debug Message", self.err._details["stderr"].as_text()) + # The follow two are looking for the function name / file name + # suffix we log only for debug messages + self.assertIn("test_defaults", self.err._details["stderr"].as_text()) + self.assertIn("test_loggingconfig.py", + self.err._details["stderr"].as_text()) log.info("Info Message") + self.assertIn("Info Message", self.err._details["stderr"].as_text()) log.warning("Warning Message") + self.assertIn("Warning Message", self.err._details["stderr"].as_text()) log.error("Error Message") + self.assertIn("Error Message", self.err._details["stderr"].as_text())