Correctly restore warning capture after logging tests.

This is a fix to the wrong behavior that 15c3906eeb introduced.
This commit is contained in:
Jacob Kaplan-Moss 2013-03-27 17:01:11 -05:00
parent 35cab0f8e4
commit 4befef91f1
1 changed files with 4 additions and 2 deletions

View File

@ -96,7 +96,9 @@ class WarningLoggerTests(TestCase):
# If tests are invoke with "-Wall" (or any -W flag actually) then # If tests are invoke with "-Wall" (or any -W flag actually) then
# warning logging gets disabled (see django/conf/__init__.py). However, # warning logging gets disabled (see django/conf/__init__.py). However,
# these tests expect warnings to be logged, so manually force warnings # these tests expect warnings to be logged, so manually force warnings
# to the logs. # to the logs. Use getattr() here because the logging capture state is
# undocumented and (I assume) brittle.
self._old_capture_state = bool(getattr(logging, '_warnings_showwarning', False))
logging.captureWarnings(True) logging.captureWarnings(True)
# this convoluted setup is to avoid printing this deprecation to # this convoluted setup is to avoid printing this deprecation to
@ -115,7 +117,7 @@ class WarningLoggerTests(TestCase):
self.logger.handlers[i].stream = self.old_streams[i] self.logger.handlers[i].stream = self.old_streams[i]
# Reset warnings state. # Reset warnings state.
logging.captureWarnings(False) logging.captureWarnings(self._old_capture_state)
@override_settings(DEBUG=True) @override_settings(DEBUG=True)
def test_warnings_capture(self): def test_warnings_capture(self):