diff options
| author | Tom Christie | 2014-11-28 15:36:04 +0000 | 
|---|---|---|
| committer | Tom Christie | 2014-11-28 15:36:04 +0000 | 
| commit | 3a5b3772fefc3c2f2c0899947cbc07bfe6e6b5d2 (patch) | |
| tree | 62da2ff99cee21b83c3dd735b2d75fe08a4ef5e0 | |
| parent | 6fbd23ab346e1a5b5401ba83e2ad2cd3474d2410 (diff) | |
| download | django-rest-framework-3a5b3772fefc3c2f2c0899947cbc07bfe6e6b5d2.tar.bz2 | |
Use ImproperlyConfigured when model meta lookup fails
| -rw-r--r-- | rest_framework/utils/model_meta.py | 7 | ||||
| -rw-r--r-- | tests/test_utils.py | 3 | 
2 files changed, 6 insertions, 4 deletions
| diff --git a/rest_framework/utils/model_meta.py b/rest_framework/utils/model_meta.py index 54f9310d..c98725c6 100644 --- a/rest_framework/utils/model_meta.py +++ b/rest_framework/utils/model_meta.py @@ -6,6 +6,7 @@ relationships and their associated metadata.  Usage: `get_field_info(model)` returns a `FieldInfo` instance.  """  from collections import namedtuple +from django.core.exceptions import ImproperlyConfigured  from django.db import models  from django.utils import six  from rest_framework.compat import OrderedDict @@ -44,9 +45,9 @@ def _resolve_model(obj):      if isinstance(obj, six.string_types) and len(obj.split('.')) == 2:          app_name, model_name = obj.split('.')          resolved_model = models.get_model(app_name, model_name) -        if not resolved_model: -            raise ValueError("Django did not return a model for " -                             "{0}.{1}".format(app_name, model_name)) +        if resolved_model is None: +            msg = "Django did not return a model for {0}.{1}" +            raise ImproperlyConfigured(msg.format(app_name, model_name))          return resolved_model      elif inspect.isclass(obj) and issubclass(obj, models.Model):          return obj diff --git a/tests/test_utils.py b/tests/test_utils.py index 0bdb36bb..8c286ea4 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -1,4 +1,5 @@  from __future__ import unicode_literals +from django.core.exceptions import ImproperlyConfigured  from django.conf.urls import patterns, url  from django.test import TestCase  from django.utils import six @@ -161,5 +162,5 @@ class ResolveModelWithPatchedDjangoTests(TestCase):          rest_framework.utils.model_meta.models.get_model = self.get_model      def test_blows_up_if_model_does_not_resolve(self): -        with self.assertRaises(ValueError): +        with self.assertRaises(ImproperlyConfigured):              _resolve_model('tests.BasicModel') | 
