def test_print_stats(self): config = create_core_test_config() api_wrapper = create_mock_api_wrapper(config) event_manager = Mock() logger = Mock() logger.log = Mock() player_service = Player(api_wrapper, event_manager, logger) pgo = api_wrapper.get_api() pgo.set_response('get_player', self._create_generic_player_response()) pgo.set_response('get_inventory', self._create_generic_inventory_response()) logger.log.return_value = None player_service.print_stats() assert logger.log.call_count == 15 self._assert_log_call(logger.log, 'Username: test_account') self._assert_log_call(logger.log, 'Bag storage: 36/350') self._assert_log_call(logger.log, 'Pokemon storage: 2/250') self._assert_log_call(logger.log, 'Stardust: 20,000') self._assert_log_call(logger.log, 'Pokecoins: 10') self._assert_log_call(logger.log, 'Poke Balls: 11') self._assert_log_call(logger.log, 'Great Balls: 12') self._assert_log_call(logger.log, 'Ultra Balls: 13') self._assert_log_call(logger.log, '-- Level: 14') self._assert_log_call(logger.log, '-- Experience: 15') self._assert_log_call(logger.log, '-- Experience until next level: 985') self._assert_log_call(logger.log, '-- Pokemon captured: 17') self._assert_log_call(logger.log, '-- Pokestops visited: 18') assert pgo.call_stack_size() == 0
def test_get_pokeballs(self): config = create_core_test_config() api_wrapper = create_mock_api_wrapper(config) event_manager = Mock() logger = Mock() logger.log = Mock() player_service = Player(api_wrapper, event_manager, logger) pgo = api_wrapper.get_api() pgo.set_response('get_player', self._create_generic_player_response()) pgo.set_response('get_inventory', self._create_generic_inventory_response()) pokeballs = player_service.get_pokeballs() assert Item.ITEM_POKE_BALL.value in pokeballs assert pokeballs[Item.ITEM_POKE_BALL.value] == 11 assert Item.ITEM_GREAT_BALL.value in pokeballs assert pokeballs[Item.ITEM_GREAT_BALL.value] == 12 assert Item.ITEM_ULTRA_BALL.value in pokeballs assert pokeballs[Item.ITEM_ULTRA_BALL.value] == 13 assert Item.ITEM_MASTER_BALL.value in pokeballs assert pgo.call_stack_size() == 0
def test_login_failure(): config = create_core_test_config() api_wrapper = create_mock_api_wrapper(config) event_manager = Mock() logger = Mock() logger.log = Mock() player_service = Player(api_wrapper, event_manager, logger) api_wrapper.get_api().login = Mock(return_value=False) assert (player_service.login()) is False
def test_heartbeat(self): config = create_core_test_config() api_wrapper = create_mock_api_wrapper(config) event_manager = Mock() logger = Mock() logger.log = Mock() player_service = Player(api_wrapper, event_manager, logger) pgo = api_wrapper.get_api() pgo.set_response('get_player', self._create_generic_player_response()) pgo.set_response('get_inventory', self._create_generic_inventory_response()) player_service.heartbeat() assert pgo.call_stack_size() == 0
def test_print_stats_no_update(self): config = create_core_test_config() api_wrapper = create_mock_api_wrapper(config) event_manager = Mock() logger = Mock() logger.log = Mock() player_service = Player(api_wrapper, event_manager, logger) api_wrapper.call = Mock(return_value=None) logger.log.return_value = None player_service.print_stats() self._assert_log_call(logger.log, 'Failed to retrieve player and inventory stats', color='red')
def test_init(): logger = Mock() logger.log = Mock(return_value=None) config_namespace = create_core_test_config() api_wrapper = create_mock_api_wrapper(config_namespace) event_manager = EventManager() player_service = Player(api_wrapper, event_manager, logger) pokemon_service = PokemonService(api_wrapper) mapper = Mapper(config_namespace, api_wrapper, Mock(), logger) path_finder = DirectPathFinder(config_namespace) stepper = Stepper(config_namespace, api_wrapper, path_finder, logger) navigator = FortNavigator(config_namespace, api_wrapper) bot = PokemonGoBot(config_namespace, api_wrapper, player_service, pokemon_service, event_manager, mapper, stepper, navigator, logger) assert len(bot.pokemon_list) == 151 assert len(bot.item_list) == 30 assert bot.position == (0, 0, 0) assert bot.config is config_namespace assert bot.api_wrapper is api_wrapper assert bot.player_service is player_service assert bot.pokemon_service is pokemon_service assert bot.event_manager is event_manager assert bot.mapper is mapper assert bot.stepper is stepper assert bot.navigator is navigator assert bot.logger is logger
def test_get_candies(self): config = create_core_test_config() api_wrapper = create_mock_api_wrapper(config) event_manager = Mock() logger = Mock() logger.log = Mock() player_service = Player(api_wrapper, event_manager, logger) pgo = api_wrapper.get_api() pgo.set_response('get_player', self._create_generic_player_response()) pgo.set_response('get_inventory', self._create_generic_inventory_response()) candies = player_service.get_candies() assert len(candies) == 1 assert candies[1] == 100 assert pgo.call_stack_size() == 0
def test_get_player(self): config = create_core_test_config() api_wrapper = create_mock_api_wrapper(config) event_manager = Mock() logger = Mock() logger.log = Mock() player_service = Player(api_wrapper, event_manager, logger) pgo = api_wrapper.get_api() pgo.set_response('get_player', self._create_generic_player_response()) pgo.set_response('get_inventory', self._create_generic_inventory_response()) player = player_service.get_player() assert isinstance(player, PlayerData) assert player.username == 'test_account' assert pgo.call_stack_size() == 0
def _create_generic_bot(config): logger = Mock() logger.log = Mock() config_namespace = create_core_test_config(config) api_wrapper = create_mock_api_wrapper(config_namespace) event_manager = Mock() player_service = Player(api_wrapper, event_manager, logger) pokemon_service = PokemonService(api_wrapper) mapper = Mapper(config_namespace, api_wrapper, Mock(), logger) path_finder = DirectPathFinder(config_namespace) stepper = Stepper(config_namespace, api_wrapper, path_finder, logger) navigator = FortNavigator(config_namespace, api_wrapper) return PokemonGoBot(config_namespace, api_wrapper, player_service, pokemon_service, event_manager, mapper, stepper, navigator, logger)
def create_mock_bot(user_config=None): config_namespace = create_core_test_config(user_config) event_manager = EventManager() logger = Logger(event_manager) api_wrapper = create_mock_api_wrapper(config_namespace) player_service = Player(api_wrapper, event_manager, logger) pokemon_service = Pokemon(api_wrapper) mapper = Mapper(config_namespace, api_wrapper, Mock(), logger) path_finder = DirectPathFinder(config_namespace) stepper = Stepper(config_namespace, api_wrapper, path_finder, logger) navigator = FortNavigator(config_namespace, api_wrapper) bot = PokemonGoBot(config_namespace, api_wrapper, player_service, pokemon_service, event_manager, mapper, stepper, navigator, logger) return bot
def test_add_candy_new(self): config = create_core_test_config() api_wrapper = create_mock_api_wrapper(config) event_manager = Mock() logger = Mock() logger.log = Mock() player_service = Player(api_wrapper, event_manager, logger) pgo = api_wrapper.get_api() pgo.set_response('get_player', self._create_generic_player_response()) pgo.set_response('get_inventory', self._create_generic_inventory_response()) before_candies = player_service.get_candy(1) assert before_candies == 100 player_service.add_candy(10, 3) after_candies = player_service.get_candy(10) assert after_candies == 3 assert pgo.call_stack_size() == 0