コード例 #1
0
 def test_dispatch_to_final_no_event(self):
     entry_action = mock.Mock()
     do_action = mock.Mock()
     exit_action = mock.Mock()
     transition = mock.Mock()
     state = State('name',
                   entry_action=entry_action,
                   do_action=do_action,
                   exit_action=exit_action,
                   final=True)
     state.add_transition(transition, 'event')
     context = Context('name', initial_state=state)
     context['foo'] = 'bar'
     event = state.dispatch(context, 'event', 'obj')
     self.assertIsNone(event)
コード例 #2
0
 def test_dispatch(self):
     entry_action = mock.Mock()
     do_action = mock.Mock()
     exit_action = mock.Mock()
     transition = mock.Mock()
     state = State('name',
                   entry_action=entry_action,
                   do_action=do_action,
                   exit_action=exit_action)
     state.add_transition(transition, 'event')
     context = Context('name',
                       initial_state=state,
                       initial_system_context={'sys': 'tem'},
                       initial_user_context={'foo': 'bar'})
     event = state.dispatch(context, 'event', 'obj')
     exit_action.execute.assert_called_with({'foo': 'bar'}, 'obj')
     do_action.execute.assert_called_with({'foo': 'bar'}, 'obj')
     entry_action.execute.assert_called_with({'foo': 'bar'}, 'obj')
     transition.execute.assert_called_with({'foo': 'bar'}, 'obj')
     self.assertIsNotNone(event)
コード例 #3
0
 def test_get_transition(self):
     state = State('name')
     state.add_transition('transition', 'event')
     self.assertEqual('transition', state.get_transition('event'))
コード例 #4
0
 def test_add_transition(self):
     state = State('name')
     state.add_transition('transition', 'event')
     self.assertEqual({'event': 'transition'}, state._event_2_transition)