aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/tests/test_fields.py
diff options
context:
space:
mode:
authorEthan Fremen2013-06-12 14:23:20 -0700
committerEthan Fremen2013-06-12 14:23:20 -0700
commit2ed79b6dc626cb2fcc1bfc119ef5757c590bb983 (patch)
tree2168c40e527b3ff9cc54fbd14fdb823799bbf280 /rest_framework/tests/test_fields.py
parent0e75bcd2592caa8862e0b0166a6b851a3eada749 (diff)
parent1cc2a7b25e78fcb41f44dc5b580f0f00a0a6318a (diff)
downloaddjango-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.py30
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())
+
+