'Testing GeoIP city querying methods.'

def test04_city(self):

    g = GeoIP(country='<foo>')
    addr = '130.80.29.3'
    fqdn = 'chron.com'
    for query in (fqdn, addr):
        for func in (g.country_code, g.country_code_by_addr, g.country_code_by_name):
            self.assertEqual('US', func(query))
        for func in (g.country_name, g.country_name_by_addr, g.country_name_by_name):
            self.assertEqual('United    States', func(query))
        self.assertEqual({'country_code': 'US', 'country_name': 'United    States'}, g.country(query))
        d = g.city(query)
        self.assertEqual('USA', d['country_code3'])
        self.assertEqual('Houston', d['city'])
        self.assertEqual('TX', d['region'])
        self.assertEqual(713, d['area_code'])
        geom = g.geos(query)
        self.failIf((not isinstance(geom, GEOSGeometry)))
        (lon, lat) = ((-95.367), 29.7523)
        lat_lon = g.lat_lon(query)
        lat_lon = (lat_lon[1], lat_lon[0])
        for tup in (geom.tuple, g.coords(query), g.lon_lat(query), lat_lon):
            self.assertAlmostEqual(lon, tup[0], 4)
            self.assertAlmostEqual(lat, tup[1], 4)
