diff options
| author | Tom Christie | 2013-02-22 22:02:42 +0000 |
|---|---|---|
| committer | Tom Christie | 2013-02-22 22:02:42 +0000 |
| commit | bc87bf13b48e4ad6b3957ed686cad8a68c2072a4 (patch) | |
| tree | 6fbe53fffd6589cfcdcbcddf97d7355df0a7150a /rest_framework/tests/generics.py | |
| parent | d44eb2094211820fbdd014fd2884fd5ed04688ab (diff) | |
| download | django-rest-framework-bc87bf13b48e4ad6b3957ed686cad8a68c2072a4.tar.bz2 | |
Tests and fix for #666.
Closes #666.
Diffstat (limited to 'rest_framework/tests/generics.py')
| -rw-r--r-- | rest_framework/tests/generics.py | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/rest_framework/tests/generics.py b/rest_framework/tests/generics.py index 2e7ce727..2dcf0106 100644 --- a/rest_framework/tests/generics.py +++ b/rest_framework/tests/generics.py @@ -319,7 +319,7 @@ class TestCreateModelWithAutoNowAddField(TestCase): self.assertEquals(created.content, 'foobar') -# Test for particularly ugly reression with m2m in browseable API +# Test for particularly ugly regression with m2m in browseable API class ClassB(models.Model): name = models.CharField(max_length=255) @@ -350,3 +350,35 @@ class TestM2MBrowseableAPI(TestCase): view = ExampleView().as_view() response = view(request).render() self.assertEquals(response.status_code, status.HTTP_200_OK) + + +# Regression for #666 + +class ValidationModel(models.Model): + blank_validated_field = models.CharField(max_length=255) + + +class ValidationModelSerializer(serializers.ModelSerializer): + class Meta: + model = ValidationModel + fields = ('blank_validated_field',) + read_only_fields = ('blank_validated_field',) + + +class UpdateValidationModel(generics.RetrieveUpdateDestroyAPIView): + model = ValidationModel + serializer_class = ValidationModelSerializer + + +class TestPreSaveValidationExclusions(TestCase): + def test_pre_save_validation_exclusions(self): + """ + Somewhat weird test case to ensure that we don't perform model + validation on read only fields. + """ + obj = ValidationModel.objects.create(blank_validated_field='') + request = factory.put('/', json.dumps({}), + content_type='application/json') + view = UpdateValidationModel().as_view() + response = view(request, pk=obj.pk).render() + self.assertEquals(response.status_code, status.HTTP_200_OK) |
