class TestStateEnumField(unittest.TestCase): def setUp(self): self.state_enum = StateEnum( State( name="NEW", next_states=["ASSIGNED", "MODIFIED"], check_perms=[], ), State(name="ASSIGNED", next_states=["MODIFIED"]), State(name="MODIFIED", next_states=[]), ) self.state_enum.set_state("NEW") self.field = StateEnumField(self.state_enum, default='NEW') def test_to_python(self): t = self.field.to_python('0') self.assertEqual(type(t), StateEnum) self.assertEqual(t._current_state, 'NEW') t = self.field.to_python('1') self.assertEqual(t._current_state, 'ASSIGNED') t = self.field.to_python('NEW') self.assertEqual(type(t), StateEnum) self.assertEqual(t._current_state, 'NEW') t = self.field.to_python(t) self.assertEqual(type(t), StateEnum) self.assertEqual(t._current_state, 'NEW') t = self.field.to_python(2) self.assertEqual(type(t), StateEnum) self.assertEqual(t._current_state, 'MODIFIED') def test_choices(self): correct = ((0, 'NEW'), (1, 'ASSIGNED'), (2, 'MODIFIED')) self.assertEqual(correct, self.field.choices)
class TestStateEnumField(unittest.TestCase): def setUp(self): self.state_enum = StateEnum( State( name="NEW", next_states=["ASSIGNED", "MODIFIED"], check_perms=[], ), State( name="ASSIGNED", next_states=["MODIFIED"] ), State( name="MODIFIED", next_states=[] ), ) self.state_enum.set_state("NEW") self.field = StateEnumField(self.state_enum, default='NEW') def test_to_python(self): t = self.field.to_python('0') self.assertEqual(type(t), StateEnum) self.assertEqual(t._current_state, 'NEW') t = self.field.to_python('1') self.assertEqual(t._current_state, 'ASSIGNED') t = self.field.to_python('NEW') self.assertEqual(type(t), StateEnum) self.assertEqual(t._current_state, 'NEW') t = self.field.to_python(t) self.assertEqual(type(t), StateEnum) self.assertEqual(t._current_state, 'NEW') t = self.field.to_python(2) self.assertEqual(type(t), StateEnum) self.assertEqual(t._current_state, 'MODIFIED') def test_choices(self): correct = ((0, 'NEW'), (1, 'ASSIGNED'), (2, 'MODIFIED')) self.assertEqual(correct, self.field.choices)