Correctly restore warning capture after logging tests.
This is a fix to the wrong behavior that 15c3906eeb
introduced.
This commit is contained in:
parent
35cab0f8e4
commit
4befef91f1
|
@ -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):
|
||||||
|
|
Loading…
Reference in New Issue