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)
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')
class SimpleState(models.Model): state = StateEnumField(workflow, default="NEW", null=False) comment = models.TextField(null=True, blank=True) def save(self, *args, **kwargs): super(SimpleState, self).save(*args, **kwargs) if self.state._to: self.state.change_state(None, commit=True) def __str__(self): return six.text_type(self.state._current_state)
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)
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')