def test_choices(self): self.assertEqual(len(PersonStatus.choices()), len(PersonStatus)) for value, member in PersonStatus.choices(): self.assertTrue(isinstance(value, int)) self.assertTrue(isinstance(member, PersonStatus)) self.assertTrue(PersonStatus.get(value) == member) blank = PersonStatus.choices(blank=True)[0] self.assertEqual(blank, (BlankEnum.BLANK.value, BlankEnum.BLANK))
def test_enum_field_init(self): field = EnumField(PersonStatus) self.assertEqual(field.default, PersonStatus.UNBORN) self.assertEqual(len(PersonStatus.choices()), len(field.choices)) field = EnumField(PersonStatus, default=PersonStatus.ALIVE) self.assertEqual(field.default, PersonStatus.ALIVE) field = EnumField(PersonStatus, default=None) self.assertEqual(field.default, None)
def test_enum_form_field_not_required(self): class CustomPersonForm(forms.Form): status = EnumChoiceField(PersonStatus, required=False) form = CustomPersonForm(data={"status": None}, initial={"status": PersonStatus.DEAD.value}) self.assertEqual(form.fields["status"].choices, PersonStatus.choices(blank=True)) self.assertIn(u'<option value="" selected', six.text_type(form["status"])) self.assertTrue(form.is_valid(), form.errors) self.assertEqual(form.cleaned_data["status"], six.text_type())
def test_enum_form_field(self): class CustomPersonForm(forms.Form): status = EnumChoiceField(PersonStatus) form = CustomPersonForm(initial={"status": PersonStatus.DEAD}) self.assertEqual(form["status"].initial, PersonStatus.DEAD.value) self.assertIn( u'<option value="{}" selected'.format(PersonStatus.DEAD.value), six.text_type(form["status"]), ) self.assertEqual(form.fields["status"].choices, PersonStatus.choices()) # Test validation form = CustomPersonForm( data={"status": six.text_type(PersonStatus.ALIVE.value)}, initial={"status": PersonStatus.DEAD.value}, ) self.assertTrue(form.is_valid(), form.errors) self.assertEqual(form.cleaned_data["status"], PersonStatus.ALIVE)
def test_choices(self): self.assertEqual(len(PersonStatus.choices()), len(list(PersonStatus.items()))) self.assertTrue(all(key in PersonStatus.__dict__ for key in dict(list(PersonStatus.items()))))
def test_labels(self): self.assertIsInstance( dict(LabelBeer.choices())[0].label, (Promise, str)) self.assertIsInstance( dict(PersonStatus.choices())[0].label, (Promise, str))
def test_labels(self): self.assertIsInstance(dict(LabelBeer.choices())[0].label, (Promise, str)) self.assertIsInstance(dict(PersonStatus.choices())[0].label, (Promise, str))