コード例 #1
0
    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)
コード例 #2
0
    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)
コード例 #3
0
    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)
コード例 #4
0
ファイル: geoip.py プロジェクト: therewillbecode/ichnaea
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
コード例 #5
0
 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)
コード例 #6
0
ファイル: base.py プロジェクト: therewillbecode/ichnaea
        "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)