diff options
| author | David Medina | 2013-05-30 09:07:30 +0200 |
|---|---|---|
| committer | David Medina | 2013-05-30 09:07:30 +0200 |
| commit | c176af35e5ad18e8aced7156af7f4791e8f23ca2 (patch) | |
| tree | f37595779d7d9e06ca4f2946313840e99d7eb594 /rest_framework/tests | |
| parent | d11b55648ca657d7036a312cafe6c76db491d3cc (diff) | |
| download | django-rest-framework-c176af35e5ad18e8aced7156af7f4791e8f23ca2.tar.bz2 | |
Improve avoid validation test: #900
Diffstat (limited to 'rest_framework/tests')
| -rw-r--r-- | rest_framework/tests/test_validation.py | 19 |
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']}) |
