def test_can_receive_game_end_message(self): player1 = create_player_that_responds_to_first_message() player2 = create_player_that_responds_to_first_message() player1.add_to_hand(ESTATE) players = [player1, player2] engine = DominionEngine(players, FIRST_GAME) engine.run_until_game_end() self.assertEquals( { "type": "game-end", "winners": ["player1"], "scores": [4, 3] }, player1.last_message) self.assertEquals( { "type": "game-end", "winners": ["player1"], "scores": [4, 3] }, player2.last_message)
def test_game_ends_if_no_player_can_make_a_move(self): player = Player() def send_message_and_await_response(json_message): message = json.loads(json_message) if message["type"] == "player-name-request": return json.dumps({ "type": "player-name-reply", "player_number": message["player_number"], "name": "nothing-bot", "version": 1 }) else: return json.dumps({"type": "play-reply", "phase": "cleanup"}) player.send_message_and_await_response = send_message_and_await_response player.send_message = lambda msg: None players = [player] engine = DominionEngine(players, FIRST_GAME) engine.run_until_game_end() self.assertEquals(3, player.get_score()) self.assertEquals(500, player.get_number_of_turns_taken())