Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Avoided changing raw DeprecationWarning filter behavior

Refs #21188. Now pure Python DeprecationWarning visibility should
be back to Python defaults.
  • Loading branch information...
commit 0c6a3399523d850cfbd20de54cd089419a47383d 1 parent 210d048
@claudep claudep authored
View
3  django/utils/deprecation.py
@@ -10,6 +10,9 @@ class RemovedInDjango18Warning(DeprecationWarning):
pass
+RemovedInNextVersionWarning = RemovedInDjango18Warning
+
+
class warn_about_renamed_method(object):
def __init__(self, class_name, old_method_name, new_method_name, deprecation_warning):
self.class_name = class_name
View
6 django/utils/log.py
@@ -5,6 +5,7 @@
from django.conf import settings
from django.core import mail
from django.core.mail import get_connection
+from django.utils.deprecation import RemovedInNextVersionWarning
from django.utils.module_loading import import_string
from django.views.debug import ExceptionReporter, get_exception_reporter_filter
@@ -68,8 +69,9 @@ def configure_logging(logging_config, logging_settings):
if not sys.warnoptions:
# Route warnings through python logging
logging.captureWarnings(True)
- # Allow DeprecationWarnings through the warnings filters
- warnings.simplefilter("default", DeprecationWarning)
+ # RemovedInNextVersionWarning is a subclass of DeprecationWarning which
+ # is hidden by default, hence we force the "default" behavior
+ warnings.simplefilter("default", RemovedInNextVersionWarning)
if logging_config:
# First find the logging configuration function ...
View
9 tests/logging_tests/tests.py
@@ -7,6 +7,7 @@
from django.test import TestCase, RequestFactory, override_settings
from django.test.utils import patch_logger
from django.utils.encoding import force_text
+from django.utils.deprecation import RemovedInNextVersionWarning
from django.utils.log import (CallbackFilter, RequireDebugFalse,
RequireDebugTrue)
from django.utils.six import StringIO
@@ -86,8 +87,8 @@ def test_django_logger(self):
class WarningLoggerTests(TestCase):
"""
- Tests that warnings output for DeprecationWarnings is enabled
- and captured to the logging system
+ Tests that warnings output for RemovedInDjangoXXWarning (XX being the next
+ Django version) is enabled and captured to the logging system
"""
def setUp(self):
# If tests are invoke with "-Wall" (or any -W flag actually) then
@@ -118,12 +119,12 @@ def tearDown(self):
@override_settings(DEBUG=True)
def test_warnings_capture(self):
- warnings.warn('Foo Deprecated', DeprecationWarning)
+ warnings.warn('Foo Deprecated', RemovedInNextVersionWarning)
output = force_text(self.outputs[0].getvalue())
self.assertTrue('Foo Deprecated' in output)
def test_warnings_capture_debug_false(self):
- warnings.warn('Foo Deprecated', DeprecationWarning)
+ warnings.warn('Foo Deprecated', RemovedInNextVersionWarning)
output = force_text(self.outputs[0].getvalue())
self.assertFalse('Foo Deprecated' in output)
View
7 tests/test_runner/tests.py
@@ -13,6 +13,7 @@
from django.test import runner, TestCase, TransactionTestCase, skipUnlessDBFeature
from django.test.testcases import connections_support_transactions
from django.test.utils import IgnoreAllDeprecationWarningsMixin, override_system_checks
+from django.utils import six
from admin_scripts.tests import AdminScriptTestCase
from .models import Person
@@ -368,14 +369,14 @@ def test_runner_deprecation_verbosity_default(self):
args = ['test', '--settings=test_project.settings', 'test_runner_deprecation_app']
out, err = self.run_django_admin(args)
self.assertIn("Ran 1 test", err)
- self.assertIn("DeprecationWarning: warning from test", err)
- self.assertIn("DeprecationWarning: module-level warning from deprecation_app", err)
+ six.assertRegex(self, err, r"RemovedInDjango\d\dWarning: warning from test")
+ six.assertRegex(self, err, r"RemovedInDjango\d\dWarning: module-level warning from deprecation_app")
def test_runner_deprecation_verbosity_zero(self):
args = ['test', '--settings=test_project.settings', '--verbosity=0', 'test_runner_deprecation_app']
out, err = self.run_django_admin(args)
self.assertIn("Ran 1 test", err)
- self.assertFalse("DeprecationWarning: warning from test" in err)
+ self.assertFalse("warning from test" in err)
class AutoIncrementResetTest(TransactionTestCase):
View
5 tests/test_runner_deprecation_app/tests.py
@@ -1,10 +1,11 @@
import warnings
from django.test import TestCase
+from django.utils.deprecation import RemovedInNextVersionWarning
-warnings.warn("module-level warning from deprecation_app", DeprecationWarning)
+warnings.warn("module-level warning from deprecation_app", RemovedInNextVersionWarning)
class DummyTest(TestCase):
def test_warn(self):
- warnings.warn("warning from test", DeprecationWarning)
+ warnings.warn("warning from test", RemovedInNextVersionWarning)
Please sign in to comment.
Something went wrong with that request. Please try again.