diff options
| author | Preston Timmons <prestontimmons@gmail.com> | 2016-12-27 17:00:56 -0500 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2016-12-27 17:50:10 -0500 |
| commit | b52c73008a9d67e9ddbb841872dc15cdd3d6ee01 (patch) | |
| tree | b58a2d18242db5234b18678116e07e6f6bbc7cb3 /tests/forms_tests/widget_tests/test_select.py | |
| parent | 51cde873d9fc8e4540f4efecbd39cfe8e770be38 (diff) | |
Fixed #15667 -- Added template-based widget rendering.
Thanks Carl Meyer and Tim Graham for contributing to the patch.
Diffstat (limited to 'tests/forms_tests/widget_tests/test_select.py')
| -rw-r--r-- | tests/forms_tests/widget_tests/test_select.py | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/tests/forms_tests/widget_tests/test_select.py b/tests/forms_tests/widget_tests/test_select.py index dde84c476f..4b717b6043 100644 --- a/tests/forms_tests/widget_tests/test_select.py +++ b/tests/forms_tests/widget_tests/test_select.py @@ -221,6 +221,68 @@ class SelectTest(WidgetTest): </select>""" )) + def test_options(self): + options = list(self.widget(choices=self.beatles).options( + 'name', ['J'], attrs={'class': 'super'}, + )) + self.assertEqual(len(options), 4) + self.assertEqual(options[0]['name'], 'name') + self.assertEqual(options[0]['value'], 'J') + self.assertEqual(options[0]['label'], 'John') + self.assertEqual(options[0]['index'], '0') + self.assertEqual(options[0]['selected'], True) + # Template-related attributes + self.assertEqual(options[1]['name'], 'name') + self.assertEqual(options[1]['value'], 'P') + self.assertEqual(options[1]['label'], 'Paul') + self.assertEqual(options[1]['index'], '1') + self.assertEqual(options[1]['selected'], False) + + def test_optgroups(self): + choices = [ + ('Audio', [ + ('vinyl', 'Vinyl'), + ('cd', 'CD'), + ]), + ('Video', [ + ('vhs', 'VHS Tape'), + ('dvd', 'DVD'), + ]), + ('unknown', 'Unknown'), + ] + groups = list(self.widget(choices=choices).optgroups( + 'name', ['vhs'], attrs={'class': 'super'}, + )) + self.assertEqual(len(groups), 3) + self.assertEqual(groups[0][0], None) + self.assertEqual(groups[0][2], 0) + self.assertEqual(len(groups[0][1]), 1) + options = groups[0][1] + self.assertEqual(options[0]['name'], 'name') + self.assertEqual(options[0]['value'], 'unknown') + self.assertEqual(options[0]['label'], 'Unknown') + self.assertEqual(options[0]['index'], '0') + self.assertEqual(options[0]['selected'], False) + self.assertEqual(groups[1][0], 'Audio') + self.assertEqual(groups[1][2], 1) + self.assertEqual(len(groups[1][1]), 2) + options = groups[1][1] + self.assertEqual(options[0]['name'], 'name') + self.assertEqual(options[0]['value'], 'vinyl') + self.assertEqual(options[0]['label'], 'Vinyl') + self.assertEqual(options[0]['index'], '1_0') + self.assertEqual(options[1]['index'], '1_1') + self.assertEqual(groups[2][0], 'Video') + self.assertEqual(groups[2][2], 2) + self.assertEqual(len(groups[2][1]), 2) + options = groups[2][1] + self.assertEqual(options[0]['name'], 'name') + self.assertEqual(options[0]['value'], 'vhs') + self.assertEqual(options[0]['label'], 'VHS Tape') + self.assertEqual(options[0]['index'], '2_0') + self.assertEqual(options[0]['selected'], True) + self.assertEqual(options[1]['index'], '2_1') + def test_deepcopy(self): """ __deepcopy__() should copy all attributes properly (#25085). |
