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..254a33c9 --- /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.modelinfo 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') |
