diff options
| author | Mark Hughes | 2013-06-12 17:36:16 +0100 | 
|---|---|---|
| committer | Mark Hughes | 2013-06-12 17:36:16 +0100 | 
| commit | 82c515c19cb4050804d8255f4904e45b9b1b884b (patch) | |
| tree | 127bff4474ac05419e3231cbcf94585c7dc00b7a | |
| parent | 5d0aeef69ecec70242513195c19edcb622e14371 (diff) | |
| download | django-rest-framework-82c515c19cb4050804d8255f4904e45b9b1b884b.tar.bz2 | |
Added test for custom fields with min_value and max_value validators
| -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()) + +  | 
