diff options
| author | Tom Christie | 2012-10-04 02:37:39 -0700 |
|---|---|---|
| committer | Tom Christie | 2012-10-04 02:37:39 -0700 |
| commit | ad2149767bea4fcd07348ca77f6cad5719a44181 (patch) | |
| tree | 1b74317c74794a868856c8db0cf247e3e7034a8a /rest_framework/tests/serializer.py | |
| parent | 0a769f261e79272cf1be6add1bf96aaeec59fb05 (diff) | |
| parent | d79e18963e64c1714a29ece6ca59a8a4a1c02516 (diff) | |
| download | django-rest-framework-ad2149767bea4fcd07348ca77f6cad5719a44181.tar.bz2 | |
Merge pull request #278 from tomchristie/related-field-fixes
Related field fixes
Diffstat (limited to 'rest_framework/tests/serializer.py')
| -rw-r--r-- | rest_framework/tests/serializer.py | 61 |
1 files changed, 55 insertions, 6 deletions
diff --git a/rest_framework/tests/serializer.py b/rest_framework/tests/serializer.py index db342c9e..08a7a9d0 100644 --- a/rest_framework/tests/serializer.py +++ b/rest_framework/tests/serializer.py @@ -202,9 +202,58 @@ class ManyToManyTests(TestCase): self.assertEquals(instance.pk, 2) self.assertEquals(list(instance.rel.all()), []) - # def test_deserialization_for_update(self): - # serializer = self.serializer_class(self.data, instance=self.instance) - # expected = self.instance - # self.assertEquals(serializer.is_valid(), True) - # self.assertEquals(serializer.object, expected) - # self.assertTrue(serializer.object is expected) + +class DefaultValueTests(TestCase): + def setUp(self): + class DefaultValueSerializer(serializers.ModelSerializer): + class Meta: + model = DefaultValueModel + + self.serializer_class = DefaultValueSerializer + self.objects = DefaultValueModel.objects + + def test_create_using_default(self): + data = {} + serializer = self.serializer_class(data) + self.assertEquals(serializer.is_valid(), True) + instance = serializer.save() + self.assertEquals(len(self.objects.all()), 1) + self.assertEquals(instance.pk, 1) + self.assertEquals(instance.text, 'foobar') + + def test_create_overriding_default(self): + data = {'text': 'overridden'} + serializer = self.serializer_class(data) + self.assertEquals(serializer.is_valid(), True) + instance = serializer.save() + self.assertEquals(len(self.objects.all()), 1) + self.assertEquals(instance.pk, 1) + self.assertEquals(instance.text, 'overridden') + + +class CallableDefaultValueTests(TestCase): + def setUp(self): + class CallableDefaultValueSerializer(serializers.ModelSerializer): + class Meta: + model = CallableDefaultValueModel + + self.serializer_class = CallableDefaultValueSerializer + self.objects = CallableDefaultValueModel.objects + + def test_create_using_default(self): + data = {} + serializer = self.serializer_class(data) + self.assertEquals(serializer.is_valid(), True) + instance = serializer.save() + self.assertEquals(len(self.objects.all()), 1) + self.assertEquals(instance.pk, 1) + self.assertEquals(instance.text, 'foobar') + + def test_create_overriding_default(self): + data = {'text': 'overridden'} + serializer = self.serializer_class(data) + self.assertEquals(serializer.is_valid(), True) + instance = serializer.save() + self.assertEquals(len(self.objects.all()), 1) + self.assertEquals(instance.pk, 1) + self.assertEquals(instance.text, 'overridden') |
