Ejemplo n.º 1
0
    def _get_simulator(self, players):
        simulator = Mock()
        simulator._states = []
        simulator._scores = None
        simulator.get_players.return_value = players
        simulator.get_states.return_value = simulator._states
        simulator.get_scores.side_effect = lambda: simulator._scores
        simulator.is_finished = False

        def report_state(state):
            simulator._states.append(state)

        def get_move(player, state, serialize, deserialize):
            return (0, 0)

        def finish_game(scores):
            simulator._scores = scores
            simulator.is_finished = True

        simulator.report_state.side_effect = report_state
        simulator.get_move.side_effect = get_move
        simulator.finish_game.side_effect = finish_game
        return simulator
Ejemplo n.º 2
0
    def test_game(self):
        def game_master_side_effect(game_controller, jury_state):
            game_master._game_controller = game_controller
            return game_master

        def game_side_effect(jury_state):
            game_master._game_controller.is_finished = True
        game_master = Mock()
        game_master.is_finished = False
        game_master.tick.side_effect = game_side_effect
        # Sample command line
        if os.name == 'nt':
            config = [player.Player('a.exe') for i in range(2)]
        else:
            config = [player.Player('./a.out') for i in range(2)]
        gen = generator.Generator()
        start_state = next(gen.generate_start_positions(' ', 2))
        eng = game_simulator.GameSimulator(config, start_state, '')
        result = eng.play()
        game_master.tick.assert_called_once()

        answer = game_controller.GameController(config, [], start_state, eng)
        answer.is_finished = True
        self.assertEqual(answer.is_finished, result.is_finished)