def test_returns_not_found_when_gmaps_returns_no_results(self): gmapsMock = InstanceDouble("googlemaps.Client") allow(gmapsMock).geocode("No loc", bounds=self.SF_BOUNDS).and_return([]) geocoder = MovieLocationGeocoder(gmapsMock) res = geocoder.geocode("No loc") assert not res.found
def test_returns_coordinates_and_placeid_of_full_address_when_gmaps_returns_a_result(self): gmapsMock = InstanceDouble("googlemaps.Client") allow(gmapsMock).geocode("Some loc", bounds=self.SF_BOUNDS).and_return( [{"geometry": {"location": {"lat": 37.7, "lng": -122.4}}, "place_id": "Pid"}] ) geocoder = MovieLocationGeocoder(gmapsMock) res = geocoder.geocode("Some loc") assert res.found assert res.place_id == "Pid" assert abs(37.7 - res.latitude) < 0.0001 assert abs(-122.4 - res.longitude) < 0.0001
def test_caches_geocoded_locations_and_returns_them_on_subsequent_calls(self): gmapsMock = InstanceDouble("googlemaps.Client") allow(gmapsMock).geocode("Some loc", bounds=self.SF_BOUNDS).and_return( [{"geometry": {"location": {"lat": 37.7, "lng": -122.4}}, "place_id": "Pid"}] ).once() geocoder = MovieLocationGeocoder(gmapsMock) geocoder.geocode("Some loc") res = geocoder.geocode("Some loc") assert res.found assert res.place_id == "Pid" assert abs(37.7 - res.latitude) < 0.0001 assert abs(-122.4 - res.longitude) < 0.0001