예제 #1
0
 def test_get(self):
     self.assertTrue(
         isinstance(PersonStatus.get(PersonStatus.ALIVE), Enum.Value))
     self.assertTrue(
         isinstance(PersonStatus.get(six.text_type('ALIVE')), Enum.Value))
     self.assertEqual(PersonStatus.get(PersonStatus.ALIVE),
                      PersonStatus.get(six.text_type('ALIVE')))
예제 #2
0
 def test_get_name(self):
     self.assertEqual(PersonStatus.get_name(PersonStatus.ALIVE), "ALIVE")
     self.assertEqual(PersonStatus.get_name(PersonStatus.ALIVE.value),
                      "ALIVE")
     self.assertEqual(PersonStatus.get_name(PersonStatus.ALIVE.name),
                      "ALIVE")
     self.assertIsNone(PersonStatus.get_name(89))
예제 #3
0
 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))
예제 #4
0
    def test_name(self):
        self.assertEqual(PersonStatus.ALIVE.name, six.text_type("ALIVE"))
        self.assertEqual(LabelBeer.STELLA.name, six.text_type("STELLA"))

        # Check that the old classmethod still works. Kept for backward compatibility.
        self.assertEqual(LabelBeer.name(LabelBeer.STELLA.value),
                         six.text_type("STELLA"))
        self.assertEqual(PersonStatus.name("ALIVE"), six.text_type("ALIVE"))
        self.assertEqual(PersonStatus.name(PersonStatus.ALIVE),
                         six.text_type("ALIVE"))
예제 #5
0
 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)
예제 #6
0
 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())
예제 #8
0
    def test_get(self):
        self.assertTrue(isinstance(PersonStatus.get(PersonStatus.ALIVE), Enum))
        self.assertTrue(
            isinstance(PersonStatus.get(six.text_type("ALIVE")), Enum))
        self.assertEqual(
            PersonStatus.get(PersonStatus.ALIVE),
            PersonStatus.get(six.text_type("ALIVE")),
        )

        # Returns `default` if not found
        self.assertEqual(PersonStatus.get("ALIVEISH", "?"), "?")
        self.assertEqual(PersonStatus.get(99, "??"), "??")
    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)
예제 #10
0
 def test_name(self):
     self.assertEqual(PersonStatus.name(PersonStatus.ALIVE), six.text_type('ALIVE'))
예제 #11
0
 def test_label(self):
     self.assertEqual(PersonStatus.label(PersonStatus.ALIVE), six.text_type('ALIVE'))
예제 #12
0
 def test_get(self):
     self.assertTrue(
         isinstance(PersonStatus.get(PersonStatus.ALIVE), Enum.Value))
     self.assertTrue(isinstance(PersonStatus.get(u'ALIVE'), Enum.Value))
예제 #13
0
 def test_equal(self):
     self.assertTrue(PersonStatus.ALIVE == PersonStatus.ALIVE)
     self.assertFalse(PersonStatus.ALIVE == PersonStatus.DEAD)
     self.assertEqual(PersonStatus.get(PersonStatus.ALIVE), PersonStatus.get(PersonStatus.ALIVE))
예제 #14
0
 def test_default(self):
     self.assertEqual(PersonStatus.default(), PersonStatus.UNBORN)
예제 #15
0
 def test_label(self):
     self.assertEqual(PersonStatus.label(PersonStatus.ALIVE), six.text_type('ALIVE'))
예제 #16
0
 def test_name(self):
     self.assertEqual(PersonStatus.name(PersonStatus.ALIVE), u'ALIVE')
예제 #17
0
 def test_label(self):
     self.assertEqual(PersonStatus.label(PersonStatus.ALIVE), u'Alive')
예제 #18
0
 def test_labels(self):
     self.assertIsInstance(
         dict(LabelBeer.choices())[0].label, (Promise, str))
     self.assertIsInstance(
         dict(PersonStatus.choices())[0].label, (Promise, str))
예제 #19
0
 def test_get(self):
     self.assertTrue(isinstance(PersonStatus.get(PersonStatus.ALIVE), Enum.Value))
     self.assertTrue(isinstance(PersonStatus.get(six.text_type('ALIVE')), Enum.Value))
     self.assertEqual(PersonStatus.get(PersonStatus.ALIVE), PersonStatus.get(six.text_type('ALIVE')))
예제 #20
0
 def test_name(self):
     self.assertEqual(PersonStatus.name(PersonStatus.ALIVE), six.text_type('ALIVE'))
예제 #21
0
 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()))))
예제 #22
0
 def test_label(self):
     self.assertEqual(PersonStatus.label(PersonStatus.ALIVE), u'Alive')
예제 #23
0
 def test_field(self):
     self.assertTrue(isinstance(PersonStatus.field(), EnumField))
예제 #24
0
 def test_field(self):
     self.assertTrue(isinstance(PersonStatus.field(), EnumField))
예제 #25
0
 def test_get(self):
     self.assertTrue(isinstance(PersonStatus.get(PersonStatus.ALIVE), Enum.Value))
     self.assertTrue(isinstance(PersonStatus.get(u'ALIVE'), Enum.Value))
     self.assertEqual(unicode(PersonStatus.get(PersonStatus.ALIVE)), PersonStatus.label(PersonStatus.ALIVE))
예제 #26
0
 def test_labels(self):
     self.assertIsInstance(dict(LabelBeer.choices())[0].label, (Promise, str))
     self.assertIsInstance(dict(PersonStatus.choices())[0].label, (Promise, str))
예제 #27
0
 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()))))
예제 #28
0
 def test_name(self):
     self.assertEqual(PersonStatus.name(PersonStatus.ALIVE), u'ALIVE')
예제 #29
0
 def test_items(self):
     self.assertEqual(len(PersonStatus.items()), len(PersonStatus))
     for name, value in PersonStatus.items():
         self.assertTrue(isinstance(value, int))
         self.assertTrue(isinstance(name, six.string_types))
         self.assertEqual(PersonStatus.get(value), PersonStatus.get(name))
예제 #30
0
 def test_default(self):
     self.assertEqual(PersonStatus.default(), PersonStatus.UNBORN)
예제 #31
0
 def test_equal(self):
     self.assertTrue(PersonStatus.ALIVE == PersonStatus.ALIVE)
     self.assertFalse(PersonStatus.ALIVE == PersonStatus.DEAD)
     self.assertEqual(PersonStatus.get(PersonStatus.ALIVE),
                      PersonStatus.get(PersonStatus.ALIVE))
예제 #32
0
 def test_get(self):
     self.assertTrue(isinstance(PersonStatus.get(PersonStatus.ALIVE), Enum.Value))
     self.assertTrue(isinstance(PersonStatus.get(u"ALIVE"), Enum.Value))