def test_address_closest_store(mocked, street, city, region, zip): address = Address(street, city, region, zip) assert_that( address, has_properties(line1='700 Pennsylvania Avenue NW', line2='Washington, DC, 20408')) store = address.closest_store() assert_that( store, has_properties( id='4336', data=has_entries( AddressDescription='1300 L St Nw\nWashington, DC 20005', AllowCarryoutOrders=True, AllowDeliveryOrders=True, HolidaysDescription='', HoursDescription='Su-Th 10:00am-1:00am\nFr-Sa 10:00am-2:00am', IsDeliveryStore=True, IsNEONow=False, IsOnlineCapable=True, IsOnlineNow=True, IsOpen=True, IsSpanish=False, LanguageLocationInfo=has_entries(es=None), LocationInfo=None, MaxDistance=0.8, MinDistance=0.8, Phone='202-639-8700', ServiceHoursDescription=has_entries( Carryout='Su-Sa 10:00am-10:00pm', Delivery='Su-Th 10:00am-1:00am\nFr-Sa 10:00am-2:00am'), ServiceIsOpen=has_entries(Carryout=True, Delivery=True), StoreID='4336')))
def parse_address(full_address): """ Takes a full_address string and return a 2-tuple of (pizzapi Address, pizzapi Store) """ # address_type = "{ address_type }" # pizzapi doesn't support this yet addr_parts = usaddress.tag(full_address)[0] addr_line_one = " ".join([ addr_parts.get("AddressNumber", ""), addr_parts.get("StreetNamePreDirectional", ""), addr_parts.get("StreetName", ""), addr_parts.get("StreetNamePostType", ""), addr_parts.get("OccupancyType", ""), addr_parts.get("OccupancyIdentifier", ""), ]) address = Address(addr_line_one, addr_parts["PlaceName"], addr_parts["StateName"], addr_parts["ZipCode"]) store = address.closest_store() return address, store