diff options
| author | Gregor Müllegger | 2014-11-15 15:23:58 +0100 |
|---|---|---|
| committer | Gregor Müllegger | 2014-11-15 15:29:52 +0100 |
| commit | ad060aa360fa2ed33bd83cbb419d7b996a428726 (patch) | |
| tree | e3ae062233b781727edf5f01cddbc0aa7b301b70 /tests | |
| parent | 4e035184384db8ed1227fdcb1dad2ea6ddb1cf68 (diff) | |
| download | django-rest-framework-ad060aa360fa2ed33bd83cbb419d7b996a428726.tar.bz2 | |
More helpful error message when default `.create` fails. Closes #2013.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_model_serializer.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/test_model_serializer.py b/tests/test_model_serializer.py index 3aec0da0..90767dac 100644 --- a/tests/test_model_serializer.py +++ b/tests/test_model_serializer.py @@ -10,6 +10,7 @@ from django.core.validators import MaxValueValidator, MinValueValidator, MinLeng from django.db import models from django.test import TestCase from rest_framework import serializers +import pytest def dedent(blocktext): @@ -26,6 +27,10 @@ class CustomField(models.Field): pass +class OneFieldModel(models.Model): + char_field = models.CharField(max_length=100) + + class RegularFieldsModel(models.Model): """ A model class for testing regular flat fields. @@ -68,6 +73,29 @@ class FieldOptionsModel(models.Model): choices_field = models.CharField(max_length=100, choices=COLOR_CHOICES) +class TestModelSerializer(TestCase): + def test_create_method(self): + class TestSerializer(serializers.ModelSerializer): + non_model_field = serializers.CharField() + + class Meta: + model = OneFieldModel + fields = ('char_field', 'non_model_field') + + serializer = TestSerializer(data={ + 'char_field': 'foo', + 'non_model_field': 'bar', + }) + serializer.is_valid() + with pytest.raises(TypeError): + serializer.save() + + try: + serializer.save() + except TypeError as exc: + assert 'ModelSerializer' in str(exc) + + class TestRegularFieldMappings(TestCase): def test_regular_fields(self): """ |
