class VideoTranscodeAdminForm(forms.Form): media_format = EnumField(MediaFormats) quality = EnumField(VideoQuality) def __init__(self, video, data=None, **kwargs): super(VideoTranscodeAdminForm, self).__init__(data=data, **kwargs) self.video = video def save(self): media_format = self.cleaned_data['media_format'] quality = self.cleaned_data['quality'] self.video.do_transcode(media_format, quality)
class TestEnumField(SelectTestCase): # The EnumField instance to test with. It is missing MyEnum.bar field = EnumField(MyEnum, members=[MyEnum.baz, MyEnum.foo]) def test_prepare_value(self): self.assertEqual(self.field.prepare_value(None), None) self.assertEqual(self.field.prepare_value(''), None) self.assertEqual(self.field.prepare_value(MyEnum.baz), 'baz') def test_to_python(self): self.assertEqual(self.field.to_python(None), None) self.assertEqual(self.field.to_python(''), None) self.assertEqual(self.field.to_python('baz'), MyEnum.baz) def test_to_python_invalid(self): with self.assertRaises(ValidationError): self.field.to_python('nope') def test_to_python_non_member(self): with self.assertRaises(ValidationError): self.field.to_python('bar')
class EnumForm(forms.Form): choice = EnumField(MyEnum, required=False)
class EnumForm(forms.Form): choice = EnumField(MyEnum)
class EnumForm(forms.Form): choice = EnumField(TranslatedEnum)
def test_field(self): field = EnumField(MyEnum) self.assertEqual(field.members, list(MyEnum))
class EnumForm(forms.Form): choice = EnumField(MyEnum, members=self.members)
class EnumForm(forms.Form): choice = EnumField(MyEnum) number = forms.IntegerField()