def setUp(self):
     self.fsm = create_voting_fsm('tracking-id',
                                  'vote',
                                  lambda _: 'broadcasted vote',
                                  lambda _: 'spawned program',
                                  lambda _: 'folded',
                                  lambda _: 'cleaned up',
                                  )
 def setUp(self):
     self.fsm = create_voting_fsm(
         'tracking-id',
         'vote',
         lambda _: 'broadcasted vote',
         lambda _: 'spawned program',
         lambda _: 'folded',
         lambda _: 'cleaned up',
     )
    def test_should_invoke_callbacks_on_lose(self):
        broadcast_vote = Mock()
        spawn = Mock()
        cleanup = Mock()
        fold = Mock()
        fsm = create_voting_fsm('tracking-id', 'vote', broadcast_vote, spawn,
                                fold, cleanup)

        broadcast_vote.assert_called_with(ANY)

        fsm.fold()
        fold.assert_called_with(ANY)

        self.assertEqual(fsm.current, 'finish')
    def test_should_invoke_callbacks_on_lose(self):
        broadcast_vote = Mock()
        spawn = Mock()
        cleanup = Mock()
        fold = Mock()
        fsm = create_voting_fsm('tracking-id',
                                'vote',
                                broadcast_vote,
                                spawn,
                                fold,
                                cleanup)

        broadcast_vote.assert_called_with(ANY)

        fsm.fold()
        fold.assert_called_with(ANY)

        self.assertEqual(fsm.current, 'finish')