diff --git a/tests/test_renderers.py b/tests/test_renderers.py index de89e50aaa..48ace1626d 100644 --- a/tests/test_renderers.py +++ b/tests/test_renderers.py @@ -485,3 +485,90 @@ def test_render_with_provided_args(self): 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('', + result) + self.assertInHTML('', result) + self.assertInHTML('', 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('', + result) + self.assertInHTML('', result) + self.assertInHTML('', 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('', + result) + self.assertInHTML('', result) + self.assertInHTML('', result) + self.assertInHTML('', 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('', + result) + self.assertInHTML('', result) + self.assertInHTML('', result) pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy