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)
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
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
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))
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()
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]
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
def _create_game(game_id): game = factory.create_game(game_id=game_id) DatabaseGateway.get_instance().create_game(game, game_id) return game
def setup_test(): game = factories.create_game(game_id=5) player = Player(3) game.add_player(player) game.start_game() return game, player