@@ -283,35 +283,73 @@ def test_optgroups(self):
283
283
groups = list (self .widget (choices = choices ).optgroups (
284
284
'name' , ['vhs' ], attrs = {'class' : 'super' },
285
285
))
286
- self .assertEqual (len (groups ), 3 )
287
- self .assertEqual (groups [0 ][0 ], None )
288
- self .assertEqual (groups [0 ][2 ], 0 )
289
- self .assertEqual (len (groups [0 ][1 ]), 1 )
290
- options = groups [0 ][1 ]
291
- self .assertEqual (options [0 ]['name' ], 'name' )
292
- self .assertEqual (options [0 ]['value' ], 'unknown' )
293
- self .assertEqual (options [0 ]['label' ], 'Unknown' )
294
- self .assertEqual (options [0 ]['index' ], '0' )
295
- self .assertEqual (options [0 ]['selected' ], False )
296
- self .assertEqual (groups [1 ][0 ], 'Audio' )
297
- self .assertEqual (groups [1 ][2 ], 1 )
298
- self .assertEqual (len (groups [1 ][1 ]), 2 )
299
- options = groups [1 ][1 ]
300
- self .assertEqual (options [0 ]['name' ], 'name' )
301
- self .assertEqual (options [0 ]['value' ], 'vinyl' )
302
- self .assertEqual (options [0 ]['label' ], 'Vinyl' )
303
- self .assertEqual (options [0 ]['index' ], '1_0' )
304
- self .assertEqual (options [1 ]['index' ], '1_1' )
305
- self .assertEqual (groups [2 ][0 ], 'Video' )
306
- self .assertEqual (groups [2 ][2 ], 2 )
307
- self .assertEqual (len (groups [2 ][1 ]), 2 )
308
- options = groups [2 ][1 ]
309
- self .assertEqual (options [0 ]['name' ], 'name' )
310
- self .assertEqual (options [0 ]['value' ], 'vhs' )
311
- self .assertEqual (options [0 ]['label' ], 'VHS Tape' )
312
- self .assertEqual (options [0 ]['index' ], '2_0' )
313
- self .assertEqual (options [0 ]['selected' ], True )
314
- self .assertEqual (options [1 ]['index' ], '2_1' )
286
+ audio , video , unknown = groups
287
+ label , options , index = audio
288
+ self .assertEqual (label , 'Audio' )
289
+ self .assertEqual (
290
+ options ,
291
+ [{
292
+ 'value' : 'vinyl' ,
293
+ 'type' : 'select' ,
294
+ 'attrs' : {},
295
+ 'index' : '0_0' ,
296
+ 'label' : 'Vinyl' ,
297
+ 'template_name' : 'django/forms/widgets/select_option.html' ,
298
+ 'name' : 'name' ,
299
+ 'selected' : False ,
300
+ }, {
301
+ 'value' : 'cd' ,
302
+ 'type' : 'select' ,
303
+ 'attrs' : {},
304
+ 'index' : '0_1' ,
305
+ 'label' : 'CD' ,
306
+ 'template_name' : 'django/forms/widgets/select_option.html' ,
307
+ 'name' : 'name' ,
308
+ 'selected' : False ,
309
+ }]
310
+ )
311
+ self .assertEqual (index , 0 )
312
+ label , options , index = video
313
+ self .assertEqual (label , 'Video' )
314
+ self .assertEqual (
315
+ options ,
316
+ [{
317
+ 'value' : 'vhs' ,
318
+ 'template_name' : 'django/forms/widgets/select_option.html' ,
319
+ 'label' : 'VHS Tape' ,
320
+ 'attrs' : {'selected' : True },
321
+ 'index' : '1_0' ,
322
+ 'name' : 'name' ,
323
+ 'selected' : True ,
324
+ 'type' : 'select' ,
325
+ }, {
326
+ 'value' : 'dvd' ,
327
+ 'template_name' : 'django/forms/widgets/select_option.html' ,
328
+ 'label' : 'DVD' ,
329
+ 'attrs' : {},
330
+ 'index' : '1_1' ,
331
+ 'name' : 'name' ,
332
+ 'selected' : False ,
333
+ 'type' : 'select' ,
334
+ }]
335
+ )
336
+ self .assertEqual (index , 1 )
337
+ label , options , index = unknown
338
+ self .assertEqual (label , None )
339
+ self .assertEqual (
340
+ options ,
341
+ [{
342
+ 'value' : 'unknown' ,
343
+ 'selected' : False ,
344
+ 'template_name' : 'django/forms/widgets/select_option.html' ,
345
+ 'label' : 'Unknown' ,
346
+ 'attrs' : {},
347
+ 'index' : '2' ,
348
+ 'name' : 'name' ,
349
+ 'type' : 'select' ,
350
+ }]
351
+ )
352
+ self .assertEqual (index , 2 )
315
353
316
354
def test_deepcopy (self ):
317
355
"""
0 commit comments