def test_remove_unobserved__after_unobserved_period__deletes_game():
    game1 = factories.create_game(game_id=5)
    game2 = factories.create_game(game_id=7)
    games_by_timestamp = {ago(hours=2): game1, ago(minutes=30): game2}
    game_repository = when_game_repository__find_all_before_observed_timestamp__then_answer(
        games_by_timestamp)

    interactor = interactors.UnobservedGamesInteractor(
        game_repository=game_repository)
    interactor.remove_unobserved_games(unobserved_period=timedelta(hours=1))

    game_repository.remove.assert_called_once_with(game1)
Esempio n. 2
0
def _turn_listener_test_setup(players):
    game = factories.create_game(game_id=7)
    listener = Mock()
    game.register_turn_change_listener(listener)
    for player in players:
        game.add_player(player)
    return game, listener
def setup_test(game_id=7, last_observed_timestamp=datetime.now()):
    game = factories.create_game(game_id=game_id)
    data_access = when_data_access__load_game__then_return(
        game, last_observed_timestamp)
    game_repository = interactors.GameRepository(data_access)

    return game, game_repository, data_access
Esempio n. 4
0
def _create_test_game():
    """ Creates a Game instance,
    returns this instance and one of the player's identifier """
    game = create_game(game_id=3)
    game.previous_shift_location = BoardLocation(0, 1)
    game.add_player(Player(identifier=1))
    game.add_player(Player(identifier=0))
    game.get_player(0).score = 9
    return game
Esempio n. 5
0
def given_library_binding__when_library_finished__calls_post_shift_but_not_post_move(
        post_move, post_shift, time_sleep):
    game = factory.create_game(game_id=7, with_delay=False)
    library_factory, library = _mock_library_binding()
    player = Bot(library_binding_factory=library_factory,
                 move_url="move-url",
                 shift_url="shift-url",
                 identifier=9)
    player.set_game(game)
    player.run()

    post_shift.assert_called_once_with(BoardLocation(0, 1), 90)
    post_move.assert_called_once_with(BoardLocation(0, 0))
Esempio n. 6
0
def given_library_binding__when_bot_run__calls_start_on_binding(
        post_move, post_shift, time_sleep):
    """ Tests that the bot calls start() one its computation method.
    """
    game = factory.create_game(with_delay=False)
    library_factory, library = _mock_library_binding()
    player = Bot(library_binding_factory=library_factory,
                 move_url="move-url",
                 shift_url="shift-url",
                 identifier=9)
    player.set_game(game)
    player.run()

    library.start.assert_called_once()
Esempio n. 7
0
def test_remove_unobserved__with_two_bots_remaining__logs_player_removal_with_correct_number(
):
    game = factories.create_game()
    game.add_player(Player(3))
    game.add_player(Player(7))
    game_repository = when_game_repository__find_all_before_observed_timestamp__then_answer(
        {ago(hours=2): game})

    interactor = interactors.UnobservedGamesInteractor(
        game_repository=game_repository, logger=logger)
    logger.reset_mock()
    interactor.remove_unobserved_games(unobserved_period=timedelta(hours=1))

    assert logger.remove_player.call_count == 2
    player_id_args = {arg[0][0] for arg in logger.remove_player.call_args_list}
    assert_equal_in_any_order([3, 7], player_id_args)

    num_player_args = [
        arg[1]["num_players"] for arg in logger.remove_player.call_args_list
    ]
    assert num_player_args == [1, 0]
Esempio n. 8
0
def _create_game(game_id):
    game = factory.create_game(game_id=game_id)
    DatabaseGateway.get_instance().create_game(game, game_id)
    logging.get_logger().add_game(game_id)
    return game
def setup_test():
    game = factories.create_game(game_id=5)
    player = Player(3)
    game.add_player(player)
    logger.reset_mock()
    return game, player
Esempio n. 10
0
def _create_game(game_id):
    game = factory.create_game(game_id=game_id)
    DatabaseGateway.get_instance().create_game(game, game_id)
    return game
Esempio n. 11
0
def setup_test():
    game = factories.create_game(game_id=5)
    player = Player(3)
    game.add_player(player)
    game.start_game()
    return game, player