mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-05 13:00:12 +03:00
Add tests for html-form-rendering choice fields
This commit is contained in:
parent
788603e153
commit
f742452d46
|
@ -485,3 +485,90 @@ class TestHTMLFormRenderer(TestCase):
|
|||
result = renderer.render(self.serializer.data, None, {})
|
||||
|
||||
self.assertIsInstance(result, SafeText)
|
||||
|
||||
|
||||
class TestChoiceFieldHTMLFormRenderer(TestCase):
|
||||
"""
|
||||
Test rendering ChoiceField with HTMLFormRenderer.
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
choices = ((1, 'Option1'), (2, 'Option2'), (12, 'Option12'))
|
||||
|
||||
class TestSerializer(serializers.Serializer):
|
||||
test_field = serializers.ChoiceField(choices=choices,
|
||||
initial=2)
|
||||
|
||||
self.TestSerializer = TestSerializer
|
||||
self.renderer = HTMLFormRenderer()
|
||||
|
||||
def test_render_initial_option(self):
|
||||
serializer = self.TestSerializer()
|
||||
result = self.renderer.render(serializer.data)
|
||||
|
||||
self.assertIsInstance(result, SafeText)
|
||||
|
||||
self.assertInHTML('<option value="2" selected>Option2</option>',
|
||||
result)
|
||||
self.assertInHTML('<option value="1">Option1</option>', result)
|
||||
self.assertInHTML('<option value="12">Option12</option>', result)
|
||||
|
||||
def test_render_selected_option(self):
|
||||
serializer = self.TestSerializer(data={'test_field': '12'})
|
||||
|
||||
serializer.is_valid()
|
||||
result = self.renderer.render(serializer.data)
|
||||
|
||||
self.assertIsInstance(result, SafeText)
|
||||
|
||||
self.assertInHTML('<option value="12" selected>Option12</option>',
|
||||
result)
|
||||
self.assertInHTML('<option value="1">Option1</option>', result)
|
||||
self.assertInHTML('<option value="2">Option2</option>', result)
|
||||
|
||||
|
||||
class TestMultipleChoiceFieldHTMLFormRenderer(TestCase):
|
||||
"""
|
||||
Test rendering MultipleChoiceField with HTMLFormRenderer.
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
self.renderer = HTMLFormRenderer()
|
||||
|
||||
def test_render_selected_option_with_string_option_ids(self):
|
||||
choices = (('1', 'Option1'), ('2', 'Option2'), ('12', 'Option12'),
|
||||
('}', 'OptionBrace'))
|
||||
|
||||
class TestSerializer(serializers.Serializer):
|
||||
test_field = serializers.MultipleChoiceField(choices=choices)
|
||||
|
||||
serializer = TestSerializer(data={'test_field': ['12']})
|
||||
serializer.is_valid()
|
||||
|
||||
result = self.renderer.render(serializer.data)
|
||||
|
||||
self.assertIsInstance(result, SafeText)
|
||||
|
||||
self.assertInHTML('<option value="12" selected>Option12</option>',
|
||||
result)
|
||||
self.assertInHTML('<option value="1">Option1</option>', result)
|
||||
self.assertInHTML('<option value="2">Option2</option>', result)
|
||||
self.assertInHTML('<option value="}">OptionBrace</option>', result)
|
||||
|
||||
def test_render_selected_option_with_integer_option_ids(self):
|
||||
choices = ((1, 'Option1'), (2, 'Option2'), (12, 'Option12'))
|
||||
|
||||
class TestSerializer(serializers.Serializer):
|
||||
test_field = serializers.MultipleChoiceField(choices=choices)
|
||||
|
||||
serializer = TestSerializer(data={'test_field': ['12']})
|
||||
serializer.is_valid()
|
||||
|
||||
result = self.renderer.render(serializer.data)
|
||||
|
||||
self.assertIsInstance(result, SafeText)
|
||||
|
||||
self.assertInHTML('<option value="12" selected>Option12</option>',
|
||||
result)
|
||||
self.assertInHTML('<option value="1">Option1</option>', result)
|
||||
self.assertInHTML('<option value="2">Option2</option>', result)
|
||||
|
|
Loading…
Reference in New Issue
Block a user