def test_raise_on_error(self, mock_requests): mock_requests.get.return_value.raise_for_status.side_effect = HTTPError with self.assertRaises(GeoLookupException): reverse_geocode(40, 20) mock_requests.get.return_value.raise_for_status.side_effect = ConnectionError with self.assertRaises(GeoLookupException): reverse_geocode(40, 20)
def reverse_geocode(self): """ Use the user's lat and lng to set their city, region, and country. Does not save the profile. """ if self.lat is None or self.lng is None: return from mozillians.geo.models import Country from mozillians.geo.lookup import reverse_geocode, GeoLookupException try: result = reverse_geocode(self.lat, self.lng) except GeoLookupException: if self.geo_country: # If self.geo_country is already set, just give up. pass else: # No country set, we need to at least set the placeholder one. self.geo_country = Country.objects.get(mapbox_id='geo_error') self.geo_region = None self.geo_city = None else: if result: country, region, city = result self.geo_country = country self.geo_region = region self.geo_city = city else: logger.error('Got back NONE from reverse_geocode on %s, %s' % (self.lng, self.lat))
def reverse_geocode(self): """ Use the user's lat and lng to set their city, region, and country. Does not save the profile. """ if self.lat is None or self.lng is None: return from mozillians.geo.lookup import reverse_geocode try: result = reverse_geocode(self.lat, self.lng) except HTTPError: logger.exception("Error calling mapbox") else: if result: country, region, city = result self.geo_country = country self.geo_region = region self.geo_city = city else: logger.error("Got back NONE from reverse_geocode on %s, %s" % (self.lng, self.lat))
def reverse_geocode(self): """ Use the user's lat and lng to set their city, region, and country. Does not save the profile. """ if self.lat is None or self.lng is None: return from mozillians.geo.lookup import reverse_geocode try: result = reverse_geocode(self.lat, self.lng) except HTTPError: logger.exception('Error calling mapbox') else: if result: country, region, city = result self.geo_country = country self.geo_region = region self.geo_city = city else: logger.error('Got back NONE from reverse_geocode on %s, %s' % (self.lng, self.lat))
def test_results(self, mock_get_result, mock_result_to_country): # If any result, calls result_to_country_region_city mock_get_result.return_value = {'foo': 1} mock_result_to_country.return_value = (1, 2, 3) eq_((1, 2, 3), reverse_geocode(0.0, 0.0)) mock_result_to_country.assert_called_with(mock_get_result.return_value)
def test_empty(self, mock_get_result, mock_result_to_country): # If get result returns nothing, reverse_geocode returns Nones mock_get_result.return_value = {} eq_((None, None, None), reverse_geocode(0.0, 0.0)) ok_(not mock_result_to_country.called)