예제 #1
0
 def test_city_state_lookup(self):
     connector = CityStateLookup(USPS_CONNECTION_TEST, USERID)
     response = connector.execute([{'Zip5':'90210'}])[0]
     
     self.assertEqual(response['City'], 'BEVERLY HILLS')
     self.assertEqual(response['State'], 'CA')
     self.assertEqual(response['Zip5'], '90210')
     
     response = connector.execute([{'Zip5':'20770',}])[0]
     self.assertEqual(response['City'], 'GREENBELT')
     self.assertEqual(response['State'], 'MD')
     self.assertEqual(response['Zip5'], '20770')
예제 #2
0
 def test_city_state_lookup(self):
     connector = CityStateLookup(USPS_CONNECTION_TEST, USERID, PASSWORD)
     response = connector.execute([{'Zip5':'90210'}])[0]
     
     self.assertEqual(response['City'], 'BEVERLY HILLS')
     self.assertEqual(response['State'], 'CA')
     self.assertEqual(response['Zip5'], '90210')
     
     response = connector.execute([{'Zip5':'20770',}])[0]
     self.assertEqual(response['City'], 'GREENBELT')
     self.assertEqual(response['State'], 'MD')
     self.assertEqual(response['Zip5'], '20770')
예제 #3
0
def zip_lookup(request):
    USERID = settings.USPS_USERID
    connector = CityStateLookup(USPS_CONNECTION, USERID)
    
    zip5 = request.GET.get('zip')
    
    if len(zip5) > 5:
        #might be a zip9, try to parse zip5
        zip5 = zip5[:5]
    if zip5:
        try:
            response = connector.execute([{'Zip5':zip5}])[0]
            cleaned = {}
            cleaned['city'] = response['City'].lower().title()
            cleaned['state'] = response['State'].upper()
            cleaned['zip'] = response['Zip5']
            #print cleaned
        except USPSXMLError,e:
            return HttpResponseServerError('USPS Error: %s' % e)
        except URLError,e:
            return HttpResponseServerError(json.dumps({'error':'timeout'}),mimetype="application/json")