Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
    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')
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
    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')