diff options
| author | Ethan Fremen | 2013-06-12 14:23:20 -0700 |
|---|---|---|
| committer | Ethan Fremen | 2013-06-12 14:23:20 -0700 |
| commit | 2ed79b6dc626cb2fcc1bfc119ef5757c590bb983 (patch) | |
| tree | 2168c40e527b3ff9cc54fbd14fdb823799bbf280 /rest_framework/tests/test_fields.py | |
| parent | 0e75bcd2592caa8862e0b0166a6b851a3eada749 (diff) | |
| parent | 1cc2a7b25e78fcb41f44dc5b580f0f00a0a6318a (diff) | |
| download | django-rest-framework-2ed79b6dc626cb2fcc1bfc119ef5757c590bb983.tar.bz2 | |
Merge remote-tracking branch 'upstream/master' into writable-nested-modelserializer
Diffstat (limited to 'rest_framework/tests/test_fields.py')
| -rw-r--r-- | rest_framework/tests/test_fields.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/rest_framework/tests/test_fields.py b/rest_framework/tests/test_fields.py index 69a0468e..6836ec86 100644 --- a/rest_framework/tests/test_fields.py +++ b/rest_framework/tests/test_fields.py @@ -866,3 +866,33 @@ class FieldCallableDefault(TestCase): into = {} field.field_from_native({}, {}, 'field', into) self.assertEqual(into, {'field': 'foo bar'}) + + +class CustomIntegerField(TestCase): + """ + Test that custom fields apply min_value and max_value constraints + """ + def test_custom_fields_can_be_validated_for_value(self): + + class MoneyField(models.PositiveIntegerField): + pass + + class EntryModel(models.Model): + bank = MoneyField(validators=[validators.MaxValueValidator(100)]) + + class EntrySerializer(serializers.ModelSerializer): + class Meta: + model = EntryModel + + entry = EntryModel(bank=1) + + serializer = EntrySerializer(entry, data={"bank": 11}) + self.assertTrue(serializer.is_valid()) + + serializer = EntrySerializer(entry, data={"bank": -1}) + self.assertFalse(serializer.is_valid()) + + serializer = EntrySerializer(entry, data={"bank": 101}) + self.assertFalse(serializer.is_valid()) + + |
