From b002d560c2671d2b23ffa83571074f4c53838a80 Mon Sep 17 00:00:00 2001 From: Jason Madden Date: Mon, 19 Jun 2017 08:56:50 -0500 Subject: [PATCH] Tear down sphinx loggers that break test isolation. --- src/z3c/recipe/sphinxdoc/tests/test_sphinxdoc.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/z3c/recipe/sphinxdoc/tests/test_sphinxdoc.py b/src/z3c/recipe/sphinxdoc/tests/test_sphinxdoc.py index 15c8b68..f9d8ca3 100644 --- a/src/z3c/recipe/sphinxdoc/tests/test_sphinxdoc.py +++ b/src/z3c/recipe/sphinxdoc/tests/test_sphinxdoc.py @@ -12,6 +12,7 @@ # ############################################################################## +import logging import shutil import subprocess import sys @@ -38,10 +39,21 @@ def setUp(self): os.chdir(self.tmpdir) os.mkdir('bin') + # Sphinx likes to install handlers when you call its main methods. + # If we pass -W (and we do) those turn warnings into hard errors. + # This pollutes later tests. So be sure to tear those down. + self.handlers_before_set_up = logging.getLogger().handlers[:] + def tearDown(self): os.chdir(self.here) shutil.rmtree(self.tmpdir) + root_logger = logging.getLogger() + for handler in root_logger.handlers[:]: + root_logger.removeHandler(handler) + for handler in self.handlers_before_set_up: + root_logger.addHandler(handler) + def _makeOne(self, name='docs', options=None): opts = { 'doc-eggs': 'z3c.recipe.sphinxdoc',