From f742452d463e124a7d73cfc94801461ab67bc09b Mon Sep 17 00:00:00 2001 From: Arek Korbik Date: Sun, 15 May 2016 15:38:51 +0200 Subject: [PATCH] Add tests for html-form-rendering choice fields --- tests/test_renderers.py | 87 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) diff --git a/tests/test_renderers.py b/tests/test_renderers.py index de89e50aa..48ace1626 100644 --- a/tests/test_renderers.py +++ b/tests/test_renderers.py @@ -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('', + 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)