diff options
| author | Tom Christie | 2013-01-07 05:01:39 -0800 |
|---|---|---|
| committer | Tom Christie | 2013-01-07 05:01:39 -0800 |
| commit | 55584928cad185f513fe296589f846b8540614e6 (patch) | |
| tree | 3ec0f22fd897f9fcdacf7006d853fd1f86f41ef2 /rest_framework/tests | |
| parent | 152e6d5c0af9c55aa9c276b8270aad700c43eae3 (diff) | |
| parent | c736b80290dfd650bee0fa3c530da65792dcde32 (diff) | |
| download | django-rest-framework-55584928cad185f513fe296589f846b8540614e6.tar.bz2 | |
Merge pull request #561 from mjtamlyn/import-errors
When importing settings, don't suppress any old error which happens
Diffstat (limited to 'rest_framework/tests')
| -rw-r--r-- | rest_framework/tests/extras/__init__.py | 0 | ||||
| -rw-r--r-- | rest_framework/tests/extras/bad_import.py | 1 | ||||
| -rw-r--r-- | rest_framework/tests/settings.py | 21 |
3 files changed, 22 insertions, 0 deletions
diff --git a/rest_framework/tests/extras/__init__.py b/rest_framework/tests/extras/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/rest_framework/tests/extras/__init__.py diff --git a/rest_framework/tests/extras/bad_import.py b/rest_framework/tests/extras/bad_import.py new file mode 100644 index 00000000..68263d94 --- /dev/null +++ b/rest_framework/tests/extras/bad_import.py @@ -0,0 +1 @@ +raise ValueError diff --git a/rest_framework/tests/settings.py b/rest_framework/tests/settings.py new file mode 100644 index 00000000..0293fdc3 --- /dev/null +++ b/rest_framework/tests/settings.py @@ -0,0 +1,21 @@ +"""Tests for the settings module""" +from django.test import TestCase + +from rest_framework.settings import APISettings, DEFAULTS, IMPORT_STRINGS + + +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': 'rest_framework.tests.extras.bad_import.ModelSerializer'}, DEFAULTS, IMPORT_STRINGS) + with self.assertRaises(ValueError): + settings.DEFAULT_MODEL_SERIALIZER_CLASS + + def test_import_error_message_maintained(self): + """Make sure real import errors are captured and raised sensibly.""" + settings = APISettings({'DEFAULT_MODEL_SERIALIZER_CLASS': 'rest_framework.tests.extras.not_here.ModelSerializer'}, DEFAULTS, IMPORT_STRINGS) + with self.assertRaises(ImportError) as cm: + settings.DEFAULT_MODEL_SERIALIZER_CLASS + self.assertTrue('ImportError' in str(cm.exception)) |
