diff options
Diffstat (limited to 'tests/test_modelinfo.py')
| -rw-r--r-- | tests/test_modelinfo.py | 31 | 
1 files changed, 31 insertions, 0 deletions
| diff --git a/tests/test_modelinfo.py b/tests/test_modelinfo.py new file mode 100644 index 00000000..04b67f04 --- /dev/null +++ b/tests/test_modelinfo.py @@ -0,0 +1,31 @@ +from django.test import TestCase +from django.utils import six +from rest_framework.utils.model_meta import _resolve_model +from tests.models import BasicModel + + +class ResolveModelTests(TestCase): +    """ +    `_resolve_model` should return a Django model class given the +    provided argument is a Django model class itself, or a properly +    formatted string representation of one. +    """ +    def test_resolve_django_model(self): +        resolved_model = _resolve_model(BasicModel) +        self.assertEqual(resolved_model, BasicModel) + +    def test_resolve_string_representation(self): +        resolved_model = _resolve_model('tests.BasicModel') +        self.assertEqual(resolved_model, BasicModel) + +    def test_resolve_unicode_representation(self): +        resolved_model = _resolve_model(six.text_type('tests.BasicModel')) +        self.assertEqual(resolved_model, BasicModel) + +    def test_resolve_non_django_model(self): +        with self.assertRaises(ValueError): +            _resolve_model(TestCase) + +    def test_resolve_improper_string_representation(self): +        with self.assertRaises(ValueError): +            _resolve_model('BasicModel') | 
