diff options
| author | Michal Dvorak | 2012-12-23 22:05:16 +0100 |
|---|---|---|
| committer | Michal Dvorak | 2012-12-23 22:05:16 +0100 |
| commit | 5d7d51ed9d24e98eaa2d34592db1781d1ea3230f (patch) | |
| tree | 132af4907a2106c65507bf1e5146324abf59c583 /rest_framework/tests/serializer.py | |
| parent | 5ba2437f2dcb4eb7f9677ff9e393c27af38b071f (diff) | |
| parent | ed09d26fb8da2391cab4b096d276028384438eb6 (diff) | |
| download | django-rest-framework-5d7d51ed9d24e98eaa2d34592db1781d1ea3230f.tar.bz2 | |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'rest_framework/tests/serializer.py')
| -rw-r--r-- | rest_framework/tests/serializer.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/rest_framework/tests/serializer.py b/rest_framework/tests/serializer.py index c2a41f88..1c7283ae 100644 --- a/rest_framework/tests/serializer.py +++ b/rest_framework/tests/serializer.py @@ -308,6 +308,38 @@ class ModelValidationTests(TestCase): self.assertFalse(second_serializer.is_valid()) self.assertEqual(second_serializer.errors, {'title': [u'Album with this Title already exists.']}) + def test_foreign_key_with_partial(self): + """ + Test ModelSerializer validation with partial=True + + Specifically test foreign key validation. + """ + + album = Album(title='test') + album.save() + + class PhotoSerializer(serializers.ModelSerializer): + class Meta: + model = Photo + + photo_serializer = PhotoSerializer(data={'description': 'test', 'album': album.pk}) + self.assertTrue(photo_serializer.is_valid()) + photo = photo_serializer.save() + + # Updating only the album (foreign key) + photo_serializer = PhotoSerializer(instance=photo, data={'album': album.pk}, partial=True) + self.assertTrue(photo_serializer.is_valid()) + self.assertTrue(photo_serializer.save()) + + # Updating only the description + photo_serializer = PhotoSerializer(instance=photo, + data={'description': 'new'}, + partial=True) + + self.assertTrue(photo_serializer.is_valid()) + self.assertTrue(photo_serializer.save()) + + class RegexValidationTest(TestCase): def test_create_failed(self): |
