diff --git a/tests/logging_tests/tests.py b/tests/logging_tests/tests.py index 7dde4b47b1..84e4319273 100644 --- a/tests/logging_tests/tests.py +++ b/tests/logging_tests/tests.py @@ -93,6 +93,12 @@ class WarningLoggerTests(TestCase): and captured to the logging system """ def setUp(self): + # 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. + logging.captureWarnings(True) + # this convoluted setup is to avoid printing this deprecation to # stderr during test running - as the test runner forces deprecations # to be displayed at the global py.warnings level @@ -108,6 +114,9 @@ class WarningLoggerTests(TestCase): for i, handler in enumerate(self.logger.handlers): self.logger.handlers[i].stream = self.old_streams[i] + # Reset warnings state. + logging.captureWarnings(False) + @override_settings(DEBUG=True) def test_warnings_capture(self): warnings.warn('Foo Deprecated', DeprecationWarning)