diff options
Diffstat (limited to 'tests/test_serializers.py')
| -rw-r--r-- | tests/test_serializers.py | 33 | 
1 files changed, 33 insertions, 0 deletions
| diff --git a/tests/test_serializers.py b/tests/test_serializers.py new file mode 100644 index 00000000..2e276f15 --- /dev/null +++ b/tests/test_serializers.py @@ -0,0 +1,33 @@ +from django.db import models +from django.test import TestCase + +from rest_framework.serializers import _resolve_model +from tests.models import BasicModel +from rest_framework.compat import six + + +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') | 
