class TigerGeocoderTests(TestCase):
    """
    NOTE: Expects the geocoder database to be up and running.
    """
    def setUp(self):
        self.geocoder = TigerGeocoder("dbname=geocoder user=eric",
                                      raise_shared_mem_exc=True)

    def tearDown(self):
        self.geocoder.close()

    def assertGeocode(self, address, expected_confidence):
        result = self.geocoder.geocode(address)
        self.assertEquals(expected_confidence, result['confidence'])
        if result['confidence'] in [Confidence.EXCELLENT, Confidence.FAIR]:
            self.assertEquals("1724 Massachusetts Ave NW, Washington DC 20036",
                              result['address'])
            self.assertEquals(-77.0393236499317, result['lon'])
            self.assertEquals(38.9081098579959, result['lat'])
        elif result['confidence'] == Confidence.POOR:
            self.assertTrue(result['address'] is not None)
            self.assertTrue(result['lat'] is not None)
            self.assertTrue(result['lon'] is not None)
        else:
            self.assertEquals(None, result['address'])
            self.assertEquals(None, result['lat'])
            self.assertEquals(None, result['lon'])

    def test_excellent_geocode(self):
        self.assertGeocode("1724 Massachusetts Ave NW, Washington DC",
                           Confidence.EXCELLENT)

    def test_fair_geocode(self):
        self.assertGeocode("1724 Massachusetts Ave N, Washington DC",
                           Confidence.FAIR)

    def test_poor_geocode(self):
        self.assertGeocode("1724 Massach Ave, Washington DC", Confidence.POOR)

    def test_no_match_geocode(self):
        self.assertGeocode("", Confidence.NO_MATCH)

    def test_shared_mem_exception_raised(self):
        self.geocoder = TigerGeocoder("dbname=geocoder user=eric",
                                      raise_shared_mem_exc=True)
        self.assertRaises(psycopg2.OperationalError, self.geocoder.geocode,
                          "-1 Mass Ave, Washington DC")

    def test_shared_mem_no_match(self):
        self.geocoder = TigerGeocoder("dbname=geocoder user=eric",
                                      raise_shared_mem_exc=False)
        self.assertGeocode("-1 Mass Ave, Washington DC", Confidence.NO_MATCH)

    def test_shared_mem_no_match_twice(self):
        self.geocoder = TigerGeocoder("dbname=geocoder user=eric",
                                      raise_shared_mem_exc=False)
        self.assertGeocode("-1 Mass Ave, Washington DC", Confidence.NO_MATCH)
        self.assertGeocode("-1 Mass Ave, Washington DC", Confidence.NO_MATCH)
示例#2
0
class TigerGeocoderTests(TestCase):
    """
    NOTE: Expects the geocoder database to be up and running.
    """

    def setUp(self):
        self.geocoder = TigerGeocoder("dbname=geocoder user=eric", raise_shared_mem_exc=True)

    def tearDown(self):
        self.geocoder.close()

    def assertGeocode(self, address, expected_confidence):
        result = self.geocoder.geocode(address)
        self.assertEquals(expected_confidence, result['confidence'])
        if result['confidence'] in [Confidence.EXCELLENT, Confidence.FAIR]:
            self.assertEquals("1724 Massachusetts Ave NW, Washington DC 20036", result['address'])
            self.assertEquals(-77.0393236499317, result['lon'])
            self.assertEquals(38.9081098579959, result['lat'])
        elif result['confidence'] == Confidence.POOR:
            self.assertTrue(result['address'] is not None)
            self.assertTrue(result['lat'] is not None)
            self.assertTrue(result['lon'] is not None)
        else:
            self.assertEquals(None, result['address'])
            self.assertEquals(None, result['lat'])
            self.assertEquals(None, result['lon'])

    def test_excellent_geocode(self):
        self.assertGeocode("1724 Massachusetts Ave NW, Washington DC", Confidence.EXCELLENT)

    def test_fair_geocode(self):
        self.assertGeocode("1724 Massachusetts Ave N, Washington DC", Confidence.FAIR)

    def test_poor_geocode(self):
        self.assertGeocode("1724 Massach Ave, Washington DC", Confidence.POOR)

    def test_no_match_geocode(self):
        self.assertGeocode("", Confidence.NO_MATCH)

    def test_shared_mem_exception_raised(self):
        self.geocoder = TigerGeocoder("dbname=geocoder user=eric", raise_shared_mem_exc=True)
        self.assertRaises(psycopg2.OperationalError, self.geocoder.geocode, "-1 Mass Ave, Washington DC")

    def test_shared_mem_no_match(self):
        self.geocoder = TigerGeocoder("dbname=geocoder user=eric", raise_shared_mem_exc=False)
        self.assertGeocode("-1 Mass Ave, Washington DC", Confidence.NO_MATCH)

    def test_shared_mem_no_match_twice(self):
        self.geocoder = TigerGeocoder("dbname=geocoder user=eric", raise_shared_mem_exc=False)
        self.assertGeocode("-1 Mass Ave, Washington DC", Confidence.NO_MATCH)
        self.assertGeocode("-1 Mass Ave, Washington DC", Confidence.NO_MATCH)
示例#3
0
 def setUp(self):
     self.geocoder = TigerGeocoder("dbname=geocoder user=eric", raise_shared_mem_exc=True)
示例#4
0
 def test_shared_mem_no_match_twice(self):
     self.geocoder = TigerGeocoder("dbname=geocoder user=eric", raise_shared_mem_exc=False)
     self.assertGeocode("-1 Mass Ave, Washington DC", Confidence.NO_MATCH)
     self.assertGeocode("-1 Mass Ave, Washington DC", Confidence.NO_MATCH)
示例#5
0
 def test_shared_mem_exception_raised(self):
     self.geocoder = TigerGeocoder("dbname=geocoder user=eric", raise_shared_mem_exc=True)
     self.assertRaises(psycopg2.OperationalError, self.geocoder.geocode, "-1 Mass Ave, Washington DC")
 def setUp(self):
     self.geocoder = TigerGeocoder("dbname=geocoder user=eric",
                                   raise_shared_mem_exc=True)
 def test_shared_mem_no_match_twice(self):
     self.geocoder = TigerGeocoder("dbname=geocoder user=eric",
                                   raise_shared_mem_exc=False)
     self.assertGeocode("-1 Mass Ave, Washington DC", Confidence.NO_MATCH)
     self.assertGeocode("-1 Mass Ave, Washington DC", Confidence.NO_MATCH)
 def test_shared_mem_exception_raised(self):
     self.geocoder = TigerGeocoder("dbname=geocoder user=eric",
                                   raise_shared_mem_exc=True)
     self.assertRaises(psycopg2.OperationalError, self.geocoder.geocode,
                       "-1 Mass Ave, Washington DC")