def test_field_to_python_value_is_encoded_string(self):
     """Widget may return encoded string as value for key in POST"""
     ff = SelectMultipleFormField()
     for i, v in enumerate(self.choices_list):
         subset = self.choices_list[0: i]
         encoded = encode_list_to_csv(subset)
         self.assertEqual(ff.to_python(encoded), sorted(subset))
 def test_widget_attrs_max_choices(self):
     """Widget passed max_choices information"""
     fake_widget = 'Fake widget'
     #
     # Case #1: Optional max_choices not sent to widget
     #
     ff = SelectMultipleFormField()
     self.assertTrue(ff.max_choices is None)
     self.assertNotIn('data-max-choices', ff.widget_attrs(fake_widget))
     #
     # Case #2: When set, max_coices passed as data attribute
     #
     MAX_CHOICES = 3
     ff = SelectMultipleFormField(max_choices=MAX_CHOICES)
     self.assertEqual(ff.max_choices, MAX_CHOICES)
     self.assertEqual(ff.widget_attrs(fake_widget).get(
         DEFAULT_MAX_CHOICES_ATTR), str(MAX_CHOICES))
 def test_widget_attrs_size(self):
     """Widget passed size info"""
     fake_widget = 'Fake widget'
     #
     # Case #1: Default size 4 not passed to widget
     #
     ff = SelectMultipleFormField()
     self.assertEqual(ff.size, 4)
     self.assertNotIn('size', ff.widget_attrs(fake_widget))
     #
     # Case #2: Any other size passed to widget
     #
     NON_DEFAULT_SIZE = 8
     ff = SelectMultipleFormField(size=NON_DEFAULT_SIZE)
     self.assertEqual(ff.size, NON_DEFAULT_SIZE)
     self.assertEqual(ff.widget_attrs(fake_widget).get(
         'size'), str(NON_DEFAULT_SIZE))
 def test_field_to_python_value_is_simple_string(self):
     """Widget may return simple string as value for key in POST"""
     ff = SelectMultipleFormField()
     simple = self.choices_list[1]
     self.assertEqual(ff.to_python(simple), [simple])
 def test_field_to_python_value_is_empty_string(self):
     """Widget may return empty string as value for key in POST"""
     ff = SelectMultipleFormField()
     self.assertEqual(ff.to_python(''), [])
 def test_field_to_python_value_is_none(self):
     """Widget may return None as value for missing key in POST"""
     ff = SelectMultipleFormField()
     self.assertEqual(ff.to_python(None), [])
 def test_widget_class(self):
     ff = SelectMultipleFormField()
     self.assertIsInstance(ff.widget, SelectMultipleField)
 def test_instantiation(self):
     ff = SelectMultipleFormField()
     self.assertIsInstance(ff, fields.Field)
     self.assertIsInstance(ff, fields.MultipleChoiceField)