mirror of
https://github.com/encode/django-rest-framework.git
synced 2024-11-23 01:57:00 +03:00
Merge branch 'master' into version-3.1
This commit is contained in:
commit
74483338ab
|
@ -48,7 +48,6 @@ DEFAULTS = {
|
||||||
'DEFAULT_METADATA_CLASS': 'rest_framework.metadata.SimpleMetadata',
|
'DEFAULT_METADATA_CLASS': 'rest_framework.metadata.SimpleMetadata',
|
||||||
|
|
||||||
# Generic view behavior
|
# Generic view behavior
|
||||||
'DEFAULT_MODEL_SERIALIZER_CLASS': 'rest_framework.serializers.ModelSerializer',
|
|
||||||
'DEFAULT_PAGINATION_SERIALIZER_CLASS': 'rest_framework.pagination.PaginationSerializer',
|
'DEFAULT_PAGINATION_SERIALIZER_CLASS': 'rest_framework.pagination.PaginationSerializer',
|
||||||
'DEFAULT_FILTER_BACKENDS': (),
|
'DEFAULT_FILTER_BACKENDS': (),
|
||||||
|
|
||||||
|
@ -124,7 +123,6 @@ IMPORT_STRINGS = (
|
||||||
'DEFAULT_THROTTLE_CLASSES',
|
'DEFAULT_THROTTLE_CLASSES',
|
||||||
'DEFAULT_CONTENT_NEGOTIATION_CLASS',
|
'DEFAULT_CONTENT_NEGOTIATION_CLASS',
|
||||||
'DEFAULT_METADATA_CLASS',
|
'DEFAULT_METADATA_CLASS',
|
||||||
'DEFAULT_MODEL_SERIALIZER_CLASS',
|
|
||||||
'DEFAULT_PAGINATION_SERIALIZER_CLASS',
|
'DEFAULT_PAGINATION_SERIALIZER_CLASS',
|
||||||
'DEFAULT_FILTER_BACKENDS',
|
'DEFAULT_FILTER_BACKENDS',
|
||||||
'EXCEPTION_HANDLER',
|
'EXCEPTION_HANDLER',
|
||||||
|
@ -176,8 +174,8 @@ class APISettings(object):
|
||||||
"""
|
"""
|
||||||
def __init__(self, user_settings=None, defaults=None, import_strings=None):
|
def __init__(self, user_settings=None, defaults=None, import_strings=None):
|
||||||
self.user_settings = user_settings or {}
|
self.user_settings = user_settings or {}
|
||||||
self.defaults = defaults or {}
|
self.defaults = defaults or DEFAULTS
|
||||||
self.import_strings = import_strings or ()
|
self.import_strings = import_strings or IMPORT_STRINGS
|
||||||
|
|
||||||
def __getattr__(self, attr):
|
def __getattr__(self, attr):
|
||||||
if attr not in self.defaults.keys():
|
if attr not in self.defaults.keys():
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
raise ValueError
|
|
|
@ -1,22 +1,17 @@
|
||||||
"""Tests for the settings module"""
|
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
|
from rest_framework.settings import APISettings
|
||||||
from rest_framework.settings import APISettings, DEFAULTS, IMPORT_STRINGS
|
|
||||||
|
|
||||||
|
|
||||||
class TestSettings(TestCase):
|
class TestSettings(TestCase):
|
||||||
"""Tests relating to the api settings"""
|
|
||||||
|
|
||||||
def test_non_import_errors(self):
|
|
||||||
"""Make sure other errors aren't suppressed."""
|
|
||||||
settings = APISettings({'DEFAULT_MODEL_SERIALIZER_CLASS': 'tests.extras.bad_import.ModelSerializer'}, DEFAULTS, IMPORT_STRINGS)
|
|
||||||
with self.assertRaises(ValueError):
|
|
||||||
settings.DEFAULT_MODEL_SERIALIZER_CLASS
|
|
||||||
|
|
||||||
def test_import_error_message_maintained(self):
|
def test_import_error_message_maintained(self):
|
||||||
"""Make sure real import errors are captured and raised sensibly."""
|
"""
|
||||||
settings = APISettings({'DEFAULT_MODEL_SERIALIZER_CLASS': 'tests.extras.not_here.ModelSerializer'}, DEFAULTS, IMPORT_STRINGS)
|
Make sure import errors are captured and raised sensibly.
|
||||||
with self.assertRaises(ImportError) as cm:
|
"""
|
||||||
settings.DEFAULT_MODEL_SERIALIZER_CLASS
|
settings = APISettings({
|
||||||
self.assertTrue('ImportError' in str(cm.exception))
|
'DEFAULT_RENDERER_CLASSES': [
|
||||||
|
'tests.invalid_module.InvalidClassName'
|
||||||
|
]
|
||||||
|
})
|
||||||
|
with self.assertRaises(ImportError):
|
||||||
|
settings.DEFAULT_RENDERER_CLASSES
|
||||||
|
|
Loading…
Reference in New Issue
Block a user