aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/tests
diff options
context:
space:
mode:
authorDavid Medina2013-05-30 09:07:30 +0200
committerDavid Medina2013-05-30 09:07:30 +0200
commitc176af35e5ad18e8aced7156af7f4791e8f23ca2 (patch)
treef37595779d7d9e06ca4f2946313840e99d7eb594 /rest_framework/tests
parentd11b55648ca657d7036a312cafe6c76db491d3cc (diff)
downloaddjango-rest-framework-c176af35e5ad18e8aced7156af7f4791e8f23ca2.tar.bz2
Improve avoid validation test: #900
Diffstat (limited to 'rest_framework/tests')
-rw-r--r--rest_framework/tests/test_validation.py19
1 files changed, 14 insertions, 5 deletions
diff --git a/rest_framework/tests/test_validation.py b/rest_framework/tests/test_validation.py
index 5202ebe4..a6ec0e99 100644
--- a/rest_framework/tests/test_validation.py
+++ b/rest_framework/tests/test_validation.py
@@ -65,14 +65,23 @@ class TestPreSaveValidationExclusions(TestCase):
self.assertEqual(serializer.is_valid(), False)
-class FieldValidationSerializer(serializers.Serializer):
+class ValidationSerializer(serializers.Serializer):
foo = serializers.CharField()
def validate_foo(self, attrs, source):
- raise StandardError("validate_foo was called")
+ raise serializers.ValidationError("foo invalid")
+ def validate(self, attrs):
+ raise serializers.ValidationError("serializer invalid")
-class TestFieldValidationWithInvalidData(TestCase):
- def test_validate_foo_was_not_called(self):
- serializer = FieldValidationSerializer(data='invalid data')
+
+class TestAvoidValidation(TestCase):
+ """
+ If serializer was initialized with invalid data (None or non dict-like), it
+ should avoid validation layer (validate_<field> and validate methods)
+ """
+ def test_serializer_errors_has_only_invalid_data_error(self):
+ serializer = ValidationSerializer(data='invalid data')
self.assertFalse(serializer.is_valid())
+ self.assertDictEqual(serializer.errors,
+ {'non_field_errors': ['Invalid data']})