def test_unknown_country(self): r = country_max_radius('AA') self.assertTrue(r is None) self.assertFalse('AA' in _radius_cache) r = country_max_radius('AAA') self.assertTrue(r is None) self.assertFalse('AAA' in _radius_cache)
def test_alpha3(self): r = country_max_radius('USA') self.assertEqual(r, self.usa_radius) cached = _radius_cache['USA'] self.assertEqual(r, cached) r = country_max_radius('usa') self.assertEqual(r, self.usa_radius) self.assertFalse('usa' in _radius_cache)
def test_malformed_country(self): r = country_max_radius(None) self.assertTrue(r is None) r = country_max_radius(42) self.assertTrue(r is None) r = country_max_radius('A') self.assertTrue(r is None) r = country_max_radius('-#1-') self.assertTrue(r is None)
def geoip_accuracy(country_code, city=False): """ Return the best accuracy guess for the given GeoIP record. :param country_code: A two-letter ISO country code. :type country_code: str :param city: Do we have a city record or a country record. :type city: bool :returns: An accuracy guess in meters. :rtype: int """ accuracy = None if country_code: accuracy = country_max_radius(country_code) if accuracy is None: # No country code or no successful radius lookup accuracy = GEOIP_COUNTRY_ACCURACY if city: # Use country radius as an upper bound for city radius # for really small countries accuracy = min(GEOIP_CITY_ACCURACY, accuracy) return accuracy
def test_small_countries(self): r = country_max_radius('LI') self.assertEqual(r, self.li_radius) r = country_max_radius('VAT') self.assertEqual(r, self.vat_radius)
"city": True, "country_code": "GB", "country_name": "United Kingdom", "ip": "81.2.69.192", "latitude": 51.5142, "longitude": -0.0931, "accuracy": GEOIP_CITY_ACCURACY, }, "Bhutan": { "city": False, "country_code": "BT", "country_name": "Bhutan", "ip": "67.43.156.1", "latitude": 27.5, "longitude": 90.5, "accuracy": country_max_radius("BT"), }, } GB_LAT = 51.5 GB_LON = -0.1 GB_MCC = 234 GB_MNC = 30 def _make_db(uri=SQLURI): return configure_db(uri) def _make_redis(uri=REDIS_URI): return configure_redis(uri)