From 0e3822d6e0ea71d43ce7108b43184a6b3eba3f3a Mon Sep 17 00:00:00 2001 From: Lukasz Balcerzak Date: Fri, 20 Dec 2013 16:53:06 +0100 Subject: Updated test class name to be unique --- rest_framework/tests/test_validation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'rest_framework/tests/test_validation.py') diff --git a/rest_framework/tests/test_validation.py b/rest_framework/tests/test_validation.py index ebfdff9c..ce7022cd 100644 --- a/rest_framework/tests/test_validation.py +++ b/rest_framework/tests/test_validation.py @@ -52,7 +52,7 @@ class ShouldValidateModelSerializer(serializers.ModelSerializer): fields = ('renamed',) -class TestPreSaveValidationExclusions(TestCase): +class TestPreSaveValidationExclusionsSerializer(TestCase): def test_renamed_fields_are_model_validated(self): """ Ensure fields with 'source' applied do get still get model validation. -- cgit v1.2.3 From 71aa5f3c455db9bea5163dca70bfe6f3b3c924be Mon Sep 17 00:00:00 2001 From: Lukasz Balcerzak Date: Fri, 20 Dec 2013 17:16:24 +0100 Subject: Added missing custom validation method test --- rest_framework/tests/test_validation.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'rest_framework/tests/test_validation.py') diff --git a/rest_framework/tests/test_validation.py b/rest_framework/tests/test_validation.py index ebfdff9c..371697f8 100644 --- a/rest_framework/tests/test_validation.py +++ b/rest_framework/tests/test_validation.py @@ -47,6 +47,12 @@ 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] + if len(value) < 3: + raise serializers.ValidationError('Minimum 3 characters.') + return attrs + class Meta: model = ShouldValidateModel fields = ('renamed',) @@ -63,6 +69,13 @@ class TestPreSaveValidationExclusions(TestCase): self.assertEqual(serializer.is_valid(), False) +class TestCustomValidationMethods(TestCase): + def test_custom_validation_method_is_executed(self): + serializer = ShouldValidateModelSerializer(data={'renamed': 'fo'}) + self.assertFalse(serializer.is_valid()) + self.assertIn('renamed', serializer.errors) + + class ValidationSerializer(serializers.Serializer): foo = serializers.CharField() -- cgit v1.2.3 From 973f898a4b8042775a94d3e76188b43f13d493a8 Mon Sep 17 00:00:00 2001 From: Lukasz Balcerzak Date: Fri, 20 Dec 2013 17:45:56 +0100 Subject: Should it be that way? --- rest_framework/tests/test_validation.py | 2 ++ 1 file changed, 2 insertions(+) (limited to 'rest_framework/tests/test_validation.py') diff --git a/rest_framework/tests/test_validation.py b/rest_framework/tests/test_validation.py index ce7022cd..ab75da25 100644 --- a/rest_framework/tests/test_validation.py +++ b/rest_framework/tests/test_validation.py @@ -61,6 +61,8 @@ class TestPreSaveValidationExclusionsSerializer(TestCase): # does not have `blank=True`, so this serializer should not validate. serializer = ShouldValidateModelSerializer(data={'renamed': ''}) self.assertEqual(serializer.is_valid(), False) + self.assertIn('renamed', serializer.errors) + self.assertNotIn('should_validate_field', serializer.errors) class ValidationSerializer(serializers.Serializer): -- cgit v1.2.3 From 71ab7cda2a28b0df8df54c1446b4780413909acb Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Sat, 21 Dec 2013 21:54:51 +0000 Subject: Additional test for 'source' behaviour. Refs #1302 --- rest_framework/tests/test_validation.py | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'rest_framework/tests/test_validation.py') diff --git a/rest_framework/tests/test_validation.py b/rest_framework/tests/test_validation.py index 3fb6ba37..8a8187fa 100644 --- a/rest_framework/tests/test_validation.py +++ b/rest_framework/tests/test_validation.py @@ -75,6 +75,10 @@ class TestCustomValidationMethods(TestCase): self.assertFalse(serializer.is_valid()) self.assertIn('renamed', serializer.errors) + def test_custom_validation_method_passing(self): + serializer = ShouldValidateModelSerializer(data={'renamed': 'foo'}) + self.assertTrue(serializer.is_valid()) + class ValidationSerializer(serializers.Serializer): foo = serializers.CharField() -- cgit v1.2.3