diff options
| author | Christopher Adams | 2014-09-06 17:04:35 -0400 | 
|---|---|---|
| committer | Christopher Adams | 2014-09-06 17:13:28 -0400 | 
| commit | 613a301a36f9167eec864e80336aee45a916a4e1 (patch) | |
| tree | 8aa42a11eeb0634157b22cc8e50422b573b47bbc /tests/test_validation.py | |
| parent | 2b47c6b700be530605bd30f0afe7214ea376bd13 (diff) | |
| download | django-rest-framework-613a301a36f9167eec864e80336aee45a916a4e1.tar.bz2 | |
Fixed #1533 - Resolved issue with integer keys on nested choices never validating.
- Added unit test for nested `choices` argument.
- Added unit test for non-nested `choices` argument.
Diffstat (limited to 'tests/test_validation.py')
| -rw-r--r-- | tests/test_validation.py | 40 | 
1 files changed, 40 insertions, 0 deletions
| diff --git a/tests/test_validation.py b/tests/test_validation.py index e13e4078..a46e38ac 100644 --- a/tests/test_validation.py +++ b/tests/test_validation.py @@ -1,5 +1,6 @@  from __future__ import unicode_literals  from django.core.validators import MaxValueValidator +from django.core.exceptions import ValidationError  from django.db import models  from django.test import TestCase  from rest_framework import generics, serializers, status @@ -146,3 +147,42 @@ class TestMaxValueValidatorValidation(TestCase):          response = view(request, pk=obj.pk).render()          self.assertEqual(response.content, b'{"number_value": ["Ensure this value is less than or equal to 100."]}')          self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + + +class TestChoiceFieldChoicesValidate(TestCase): +    CHOICES = [ +        (0, 'Small'), +        (1, 'Medium'), +        (2, 'Large'), +    ] + +    CHOICES_NESTED = [ +        ('Category', ( +            (1, 'First'), +            (2, 'Second'), +            (3, 'Third'), +        )), +        (4, 'Fourth'), +    ] + +    def test_choices(self): +        """ +        Make sure a value for choices works as expected. +        """ +        f = serializers.ChoiceField(choices=self.CHOICES) +        value = self.CHOICES[0][0] +        try: +            f.validate(value) +        except ValidationError: +            self.fail("Value %s does not validate" % str(value)) + +    def test_nested_choices(self): +        """ +        Make sure a nested value for choices works as expected. +        """ +        f = serializers.ChoiceField(choices=self.CHOICES_NESTED) +        value = self.CHOICES_NESTED[0][1][0][0] +        try: +            f.validate(value) +        except ValidationError: +            self.fail("Value %s does not validate" % str(value)) | 
