def test_set_state(self, wf, clear_wf_hooks):
        handler = mock.Mock()
        Workflow.connect('on_state_change')(handler)

        wf.set_state('INITIAL')
        handler.assert_not_called()

        wf.set_state('DUMMY')
        handler.assert_called_with(wf, 'DUMMY')
 def test_connect_chaining(self, clear_wf_hooks):
     hook = mock.Mock()
     Workflow.connect('after_active_tick')(
         Workflow.connect('on_finish')(hook))
     assert Workflow.hooks['after_active_tick'] == [hook]
     assert Workflow.hooks['on_finish'] == [hook]
 def test_connect_invalid_signal(self, clear_wf_hooks):
     with pytest.raises(WorkflowException, match=r'invalid signal'):
         Workflow.connect('invalid')(mock.Mock())