From dab6bf4b1a40b74abcf88099dfecbc419fbde391 Mon Sep 17 00:00:00 2001 From: Luis San Pablo Date: Wed, 16 Dec 2015 18:32:32 -0600 Subject: [PATCH] Changed error to warning message --- rest_framework/settings.py | 3 ++- tests/test_settings.py | 7 +++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/rest_framework/settings.py b/rest_framework/settings.py index c7b5de9f0..08a776cf4 100644 --- a/rest_framework/settings.py +++ b/rest_framework/settings.py @@ -17,6 +17,7 @@ This module provides the `api_setting` object, that is used to access REST framework settings, checking for user settings first, then falling back to the defaults. """ +import warnings from __future__ import unicode_literals from django.conf import settings @@ -216,7 +217,7 @@ class APISettings(object): SETTINGS_DOC = "http://www.django-rest-framework.org/api-guide/settings/" for setting in REMOVED_SETTINGS: if setting in user_settings: - raise AttributeError("The '%s' setting has been removed. Please refer to '%s' for available settings." % (setting, SETTINGS_DOC)) + warnings.warn("The '%s' setting has been removed. Please refer to '%s' for available settings." % (setting, SETTINGS_DOC), DeprecationWarning) return user_settings diff --git a/tests/test_settings.py b/tests/test_settings.py index 977780164..007586ff2 100644 --- a/tests/test_settings.py +++ b/tests/test_settings.py @@ -18,15 +18,18 @@ class TestSettings(TestCase): with self.assertRaises(ImportError): settings.DEFAULT_RENDERER_CLASSES - def test_loud_error_raised_on_removed_setting(self): + def test_warning_raised_on_removed_setting(self): """ Make sure user is alerted with an error when a removed setting is set. """ - with self.assertRaises(AttributeError): + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") APISettings({ 'MAX_PAGINATE_BY': 100 }) + self.assertEqual(len(w), 1) + self.assertTrue(issubclass(w[-1].category, DeprecationWarning)) class TestSettingTypes(TestCase):