def test_get_cells_no_response(): account = test_account_name() config = create_core_test_config({ "login": { "username": account }, "mapping": { "cell_radius": 500 } }) api_wrapper = create_mock_api_wrapper(config) google_maps = Mock(spec=Client) logger = Mock() logger.log = Mock(return_value=None) mapper = Mapper(config, api_wrapper, google_maps, logger) api_wrapper.set_position(51.5044524, -0.0752479, 10) pgo = api_wrapper.get_api() pgo.set_response("get_map_objects", {}) api_wrapper.call = Mock(return_value=None) # Clean up any old location logs if os.path.isfile('data/last-location-' + account + '.json'): os.unlink('data/last-location-' + account + '.json') cells = mapper.get_cells(51.5044524, -0.0752479) assert len(cells) == 0
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_init(): config = create_core_test_config() api_wrapper = create_mock_api_wrapper(config) google_maps = Mock(spec=Client) logger = Mock() logger.log = Mock(return_value=None) mapper = Mapper(config, api_wrapper, google_maps, logger) assert mapper.config == config assert mapper.api_wrapper == api_wrapper assert mapper.google_maps == google_maps
def test_find_location_with_coordinates(): config = create_core_test_config() api_wrapper = create_mock_api_wrapper(config) google_maps = Mock(spec=Client) google_maps.elevation = Mock(return_value=[{'elevation': 10.1}]) logger = Mock() logger.log = Mock(return_value=None) mapper = Mapper(config, api_wrapper, google_maps, logger) lat, lng, alt = mapper.find_location('51.5044524, -0.0752479') assert lat == 51.5044524 assert lng == -0.0752479 assert alt == 10.1
def start(self): self._setup_logging() self._init_plugins() self._setup_api() random.seed() self.stepper = Stepper(self) self.mapper = Mapper(self) if self.config.navigator == 'fort': self.navigator = FortNavigator(self) # pylint: disable=redefined-variable-type elif self.config.navigator == 'waypoint': self.navigator = WaypointNavigator(self) # pylint: disable=redefined-variable-type elif self.config.navigator == 'camper': self.navigator = CamperNavigator(self) # pylint: disable=redefined-variable-type
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 test_get_cells(self): account = test_account_name() config = create_core_test_config({ "debug": True, "login": { "username": account, }, "mapping": { "cell_radius": 500 } }) api_wrapper = create_mock_api_wrapper(config) google_maps = Mock(spec=Client) logger = Mock() logger.log = Mock(return_value=None) mapper = Mapper(config, api_wrapper, google_maps, logger) api_wrapper.set_position(51.5044524, -0.0752479, 10) pgo = api_wrapper.get_api() pgo.set_response( "get_map_objects", { "map_cells": [ self._create_map_cell(1), self._create_map_cell(2), self._create_map_cell(3), self._create_map_cell(4), self._create_map_cell(5) ] }) # Clean up any old location logs if os.path.isfile('data/last-location-' + account + '.json'): os.unlink('data/last-location-' + account + '.json') cells = mapper.get_cells(51.5044524, -0.0752479) assert len(cells) == 5 assert bool( os.path.isfile('data/last-location-' + account + '.json')) is True with open('data/last-location-' + account + '.json') as data_file: data = json.load(data_file) assert data["lat"] == 51.5044524 assert data["lng"] == -0.0752479 os.unlink('data/last-location-' + account + '.json')
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_find_location_with_coordinates_invalid_response(): config = create_core_test_config() api_wrapper = create_mock_api_wrapper(config) google_maps = Mock(spec=Client) google_maps.elevation = Mock(return_value=None) location = Mock() location.latitude = 51.5044524 location.longitude = -0.0752479 location.altitude = 10.1 google_maps.geocode = Mock(return_value=location) logger = Mock() logger.log = Mock(return_value=None) mapper = Mapper(config, api_wrapper, google_maps, logger) lat, lng, alt = mapper.find_location('51.5044524, -0.0752479') assert lat == 51.5044524 assert lng == -0.0752479 assert alt == 10.1