Commit bec25021 authored by Jacob Kaplan-Moss's avatar Jacob Kaplan-Moss
Browse files

[1.5.x] Correctly restore warning capture after logging tests.

This is a fix to the wrong behavior that 15c3906e introduced.

Backport of 4befef91 from trunk.
parent 9a41045b
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -145,7 +145,9 @@ class WarningLoggerTests(TestCase):
        # If tests are invoke with "-Wall" (or any -W flag actually) then
        # warning logging gets disabled (see django/conf/__init__.py). However,
        # 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)

        # this convoluted setup is to avoid printing this deprecation to
@@ -164,7 +166,7 @@ class WarningLoggerTests(TestCase):
            self.logger.handlers[i].stream = self.old_streams[i]

        # Reset warnings state.
        logging.captureWarnings(False)
        logging.captureWarnings(self._old_capture_state)

    @override_settings(DEBUG=True)
    def test_warnings_capture(self):