diff options
| author | Tim Graham <timograham@gmail.com> | 2017-05-03 07:21:44 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-05-03 07:21:44 -0400 |
| commit | d302e2c09c281e6b1e187f704f656e5e79e69246 (patch) | |
| tree | b48c0e196175ae368268b5605a29ad79c99764f0 /tests/forms_tests/widget_tests/test_select.py | |
| parent | 13cd5b067054f40c6ca723c97fff56c510c04295 (diff) | |
Fixed #28157 -- Fixed choice ordering in form fields with grouped and non-grouped options.
Regression in b52c73008a9d67e9ddbb841872dc15cdd3d6ee01.
Diffstat (limited to 'tests/forms_tests/widget_tests/test_select.py')
| -rw-r--r-- | tests/forms_tests/widget_tests/test_select.py | 96 |
1 files changed, 67 insertions, 29 deletions
diff --git a/tests/forms_tests/widget_tests/test_select.py b/tests/forms_tests/widget_tests/test_select.py index 047d007564..a5201e96e8 100644 --- a/tests/forms_tests/widget_tests/test_select.py +++ b/tests/forms_tests/widget_tests/test_select.py @@ -280,35 +280,73 @@ class SelectTest(WidgetTest): 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') + audio, video, unknown = groups + label, options, index = audio + self.assertEqual(label, 'Audio') + self.assertEqual( + options, + [{ + 'value': 'vinyl', + 'type': 'select', + 'attrs': {}, + 'index': '0_0', + 'label': 'Vinyl', + 'template_name': 'django/forms/widgets/select_option.html', + 'name': 'name', + 'selected': False, + }, { + 'value': 'cd', + 'type': 'select', + 'attrs': {}, + 'index': '0_1', + 'label': 'CD', + 'template_name': 'django/forms/widgets/select_option.html', + 'name': 'name', + 'selected': False, + }] + ) + self.assertEqual(index, 0) + label, options, index = video + self.assertEqual(label, 'Video') + self.assertEqual( + options, + [{ + 'value': 'vhs', + 'template_name': 'django/forms/widgets/select_option.html', + 'label': 'VHS Tape', + 'attrs': {'selected': True}, + 'index': '1_0', + 'name': 'name', + 'selected': True, + 'type': 'select', + }, { + 'value': 'dvd', + 'template_name': 'django/forms/widgets/select_option.html', + 'label': 'DVD', + 'attrs': {}, + 'index': '1_1', + 'name': 'name', + 'selected': False, + 'type': 'select', + }] + ) + self.assertEqual(index, 1) + label, options, index = unknown + self.assertEqual(label, None) + self.assertEqual( + options, + [{ + 'value': 'unknown', + 'selected': False, + 'template_name': 'django/forms/widgets/select_option.html', + 'label': 'Unknown', + 'attrs': {}, + 'index': '2', + 'name': 'name', + 'type': 'select', + }] + ) + self.assertEqual(index, 2) def test_deepcopy(self): """ |
