aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_validation.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_validation.py')
-rw-r--r--tests/test_validation.py49
1 files changed, 17 insertions, 32 deletions
diff --git a/tests/test_validation.py b/tests/test_validation.py
index a46e38ac..4d64e6e1 100644
--- a/tests/test_validation.py
+++ b/tests/test_validation.py
@@ -1,6 +1,5 @@
from __future__ import unicode_literals
from django.core.validators import MaxValueValidator
-from django.core.exceptions import ValidationError
from django.db import models
from django.test import TestCase
from rest_framework import generics, serializers, status
@@ -23,23 +22,10 @@ class ValidationModelSerializer(serializers.ModelSerializer):
class UpdateValidationModel(generics.RetrieveUpdateDestroyAPIView):
- model = ValidationModel
+ queryset = ValidationModel.objects.all()
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('/', {}, format='json')
- view = UpdateValidationModel().as_view()
- response = view(request, pk=obj.pk).render()
- self.assertEqual(response.status_code, status.HTTP_200_OK)
-
-
# Regression for #653
class ShouldValidateModel(models.Model):
@@ -49,11 +35,10 @@ class ShouldValidateModel(models.Model):
class ShouldValidateModelSerializer(serializers.ModelSerializer):
renamed = serializers.CharField(source='should_validate_field', required=False)
- def validate_renamed(self, attrs, source):
- value = attrs[source]
+ def validate_renamed(self, value):
if len(value) < 3:
raise serializers.ValidationError('Minimum 3 characters.')
- return attrs
+ return value
class Meta:
model = ShouldValidateModel
@@ -118,7 +103,7 @@ class ValidationMaxValueValidatorModelSerializer(serializers.ModelSerializer):
class UpdateMaxValueValidationModel(generics.RetrieveUpdateDestroyAPIView):
- model = ValidationMaxValueValidatorModel
+ queryset = ValidationMaxValueValidatorModel.objects.all()
serializer_class = ValidationMaxValueValidatorModelSerializer
@@ -145,7 +130,7 @@ class TestMaxValueValidatorValidation(TestCase):
request = factory.patch('/{0}'.format(obj.pk), {'number_value': 101}, format='json')
view = UpdateMaxValueValidationModel().as_view()
response = view(request, pk=obj.pk).render()
- self.assertEqual(response.content, b'{"number_value": ["Ensure this value is less than or equal to 100."]}')
+ self.assertEqual(response.content, b'{"number_value":["Ensure this value is less than or equal to 100."]}')
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
@@ -172,17 +157,17 @@ class TestChoiceFieldChoicesValidate(TestCase):
f = serializers.ChoiceField(choices=self.CHOICES)
value = self.CHOICES[0][0]
try:
- f.validate(value)
- except ValidationError:
+ f.to_internal_value(value)
+ except serializers.ValidationError:
self.fail("Value %s does not validate" % str(value))
- def test_nested_choices(self):
- """
- Make sure a nested value for choices works as expected.
- """
- f = serializers.ChoiceField(choices=self.CHOICES_NESTED)
- value = self.CHOICES_NESTED[0][1][0][0]
- try:
- f.validate(value)
- except ValidationError:
- self.fail("Value %s does not validate" % str(value))
+ # def test_nested_choices(self):
+ # """
+ # Make sure a nested value for choices works as expected.
+ # """
+ # f = serializers.ChoiceField(choices=self.CHOICES_NESTED)
+ # value = self.CHOICES_NESTED[0][1][0][0]
+ # try:
+ # f.to_native(value)
+ # except ValidationError:
+ # self.fail("Value %s does not validate" % str(value))