Ejemplo n.º 1
0
    def test_manager_post_transition_signal(self):
        transitions = (("TR_1", "A", "B"), )
        model = ExampleModel()
        manager = Workflow(model, "test_state")
        manager.set_transitions(transitions)

        def post_transition_event(signal, *args, **kwargs):
            self.assertEqual("B", kwargs["state"])
            self.assertEqual("TR_1", kwargs["transition"])
            self.assertEqual(ExampleModel, kwargs["model"].__class__)
            ExampleModel.flag = "BLUE"

        post_transition_signal.connect(post_transition_event)
        manager.do("TR_1")
        self.assertEqual("B", getattr(model, "test_state"))
        self.assertEqual('BLUE', ExampleModel.flag)
Ejemplo n.º 2
0
    def test_manager_pre_transition_signal(self):
        transitions = (("TR_1", "A", "B"), )
        model = ExampleModel()
        self.assertEqual('RED', model.flag)
        manager = Workflow(model, "test_state")
        manager.set_transitions(transitions)

        def pre_transition_event(signal, key, transition, sender, model,
                                 state):
            self.assertEqual("A", state)
            self.assertEqual("TR_1", transition)
            self.assertEqual(ExampleModel, model.__class__)
            ExampleModel.flag = "BLUE"

        pre_transition_signal.connect(pre_transition_event)
        manager.do("TR_1")
        self.assertEqual("B", getattr(model, "test_state"))
        self.assertEqual('BLUE', ExampleModel.flag)
        pre_transition_signal.disconnect(pre_transition_event)
Ejemplo n.º 3
0
    def test_manager(self):
        transitions = (
            ("TR_1", "A", "B"),
            ("TR_1", "B", "A"),
            ("TR_2", "B", "C"),
            ("TR_3", "C", "D"),
        )
        model = ExampleModel()
        manager = Workflow(model, "test_state")
        manager.set_transitions(transitions)

        self.assertRaises(BadTransition, manager.do, "TR_2")
        self.assertRaises(BadTransition, manager.do, "TR_3")

        self.assertTrue(manager.can("TR_1"))
        self.assertFalse(manager.can("TR_2"))
        self.assertFalse(manager.can("TR_3"))

        manager.do("TR_1")

        self.assertEqual("B", getattr(model, "test_state"))
        self.assertTrue(manager.can("TR_1"))
        self.assertTrue(manager.can("TR_2"))
        self.assertFalse(manager.can("TR_3"))

        manager.do("TR_1")

        self.assertEqual("A", model.test_state)
        self.assertTrue(manager.can("TR_1"),
                        "TR_1 is a valid transition from state A")
        self.assertFalse(manager.can("TR_2"),
                         "TR_2 is not a valid transition from state A")
        self.assertFalse(manager.can("TR_3"),
                         "TR_3 is not a valid transition from state A")

        self.assertRaises(BadTransition, manager.do, "TR_3")
Ejemplo n.º 4
0
 def setUp(self):
     self._model = ExampleModel()
     self._manager = Workflow(self._model, "test_state")
     ExampleModel.flag = "RED"
Ejemplo n.º 5
0
 def payment_workflow(self):
     if self._payment_workflow is None:
         self._payment_workflow = Workflow(self, u"payment_state", PAYMENT_WORKFLOW)
     return self._payment_workflow
Ejemplo n.º 6
0
 def order_workflow(self):
     if self._order_workflow is None:
         self._order_workflow = Workflow(self, u"order_state", ORDER_WORKFLOW)
     return self._order_workflow