mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-02-02 20:54:42 +03:00
Add unittests for ChoiceField metadata.
Rename 'name' to 'display_name'.
This commit is contained in:
parent
2484fc9141
commit
8d09f56061
|
@ -516,7 +516,7 @@ class ChoiceField(WritableField):
|
||||||
|
|
||||||
def metadata(self):
|
def metadata(self):
|
||||||
data = super(ChoiceField, self).metadata()
|
data = super(ChoiceField, self).metadata()
|
||||||
data['choices'] = [{'value': v, 'name': n} for v, n in self.choices]
|
data['choices'] = [{'value': v, 'display_name': n} for v, n in self.choices]
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def validate(self, value):
|
def validate(self, value):
|
||||||
|
|
|
@ -707,20 +707,21 @@ class ChoiceFieldTests(TestCase):
|
||||||
self.assertEqual(f.choices, models.fields.BLANK_CHOICE_DASH + SAMPLE_CHOICES)
|
self.assertEqual(f.choices, models.fields.BLANK_CHOICE_DASH + SAMPLE_CHOICES)
|
||||||
|
|
||||||
def test_invalid_choice_model(self):
|
def test_invalid_choice_model(self):
|
||||||
s = ChoiceFieldModelSerializer(data={'choice' : 'wrong_value'})
|
s = ChoiceFieldModelSerializer(data={'choice': 'wrong_value'})
|
||||||
self.assertFalse(s.is_valid())
|
self.assertFalse(s.is_valid())
|
||||||
self.assertEqual(s.errors, {'choice': ['Select a valid choice. wrong_value is not one of the available choices.']})
|
self.assertEqual(s.errors, {'choice': ['Select a valid choice. wrong_value is not one of the available choices.']})
|
||||||
self.assertEqual(s.data['choice'], '')
|
self.assertEqual(s.data['choice'], '')
|
||||||
|
|
||||||
def test_empty_choice_model(self):
|
def test_empty_choice_model(self):
|
||||||
"""
|
"""
|
||||||
Test that the 'empty' value is correctly passed and used depending on the 'null' property on the model field.
|
Test that the 'empty' value is correctly passed and used depending on
|
||||||
|
the 'null' property on the model field.
|
||||||
"""
|
"""
|
||||||
s = ChoiceFieldModelSerializer(data={'choice' : ''})
|
s = ChoiceFieldModelSerializer(data={'choice': ''})
|
||||||
self.assertTrue(s.is_valid())
|
self.assertTrue(s.is_valid())
|
||||||
self.assertEqual(s.data['choice'], '')
|
self.assertEqual(s.data['choice'], '')
|
||||||
|
|
||||||
s = ChoiceFieldModelWithNullSerializer(data={'choice' : ''})
|
s = ChoiceFieldModelWithNullSerializer(data={'choice': ''})
|
||||||
self.assertTrue(s.is_valid())
|
self.assertTrue(s.is_valid())
|
||||||
self.assertEqual(s.data['choice'], None)
|
self.assertEqual(s.data['choice'], None)
|
||||||
|
|
||||||
|
@ -740,6 +741,23 @@ class ChoiceFieldTests(TestCase):
|
||||||
self.assertEqual(f.from_native(''), None)
|
self.assertEqual(f.from_native(''), None)
|
||||||
self.assertEqual(f.from_native(None), None)
|
self.assertEqual(f.from_native(None), None)
|
||||||
|
|
||||||
|
def test_metadata_choices(self):
|
||||||
|
"""
|
||||||
|
Make sure proper choices are included in the field's metadata.
|
||||||
|
"""
|
||||||
|
choices = [{'value': v, 'display_name': n} for v, n in SAMPLE_CHOICES]
|
||||||
|
f = serializers.ChoiceField(choices=SAMPLE_CHOICES)
|
||||||
|
self.assertEqual(f.metadata()['choices'], choices)
|
||||||
|
|
||||||
|
def test_metadata_choices_not_required(self):
|
||||||
|
"""
|
||||||
|
Make sure proper choices are included in the field's metadata.
|
||||||
|
"""
|
||||||
|
choices = [{'value': v, 'display_name': n}
|
||||||
|
for v, n in models.fields.BLANK_CHOICE_DASH + SAMPLE_CHOICES]
|
||||||
|
f = serializers.ChoiceField(required=False, choices=SAMPLE_CHOICES)
|
||||||
|
self.assertEqual(f.metadata()['choices'], choices)
|
||||||
|
|
||||||
|
|
||||||
class EmailFieldTests(TestCase):
|
class EmailFieldTests(TestCase):
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in New Issue
Block a user