From b2d78939d171f12ae7baaf0a2fa5a29b43bb2e47 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Wed, 1 Jan 2014 22:55:50 +0100 Subject: [PATCH] Prevented calling setup() inside catch_warnings When django.setup() (and then configure_logging) is called inside catch_warnings, logging setup is negatively affected (notably warnings.showwarning definition). --- tests/logging_tests/tests.py | 4 ++-- tests/runtests.py | 9 ++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/tests/logging_tests/tests.py b/tests/logging_tests/tests.py index f020bfddef..5b536f9e82 100644 --- a/tests/logging_tests/tests.py +++ b/tests/logging_tests/tests.py @@ -91,8 +91,8 @@ class WarningLoggerTests(TestCase): """ 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 + # warning logging gets disabled (see configure_logging in django/utils/log.py). + # However, these tests expect warnings to be logged, so manually force warnings # 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)) diff --git a/tests/runtests.py b/tests/runtests.py index e33533a083..bb14a27fd6 100755 --- a/tests/runtests.py +++ b/tests/runtests.py @@ -125,10 +125,13 @@ def setup(verbosity, test_labels): handler = logging.StreamHandler() logger.addHandler(handler) + warnings.filterwarnings( + 'ignore', + 'django.contrib.comments is deprecated and will be removed before Django 1.8.', + DeprecationWarning + ) # Load all the ALWAYS_INSTALLED_APPS. - with warnings.catch_warnings(): - warnings.filterwarnings('ignore', 'django.contrib.comments is deprecated and will be removed before Django 1.8.', DeprecationWarning) - django.setup() + django.setup() # Load all the test model apps. test_modules = get_test_modules()