def test_disambiguate__guess(self): from ebpub.geocoder.base import disambiguate # 'guess' doesn't do anything unless we have something to filter on. self.assertEqual(disambiguate([], zipcode="10014", guess=True), []) self.assertEqual(disambiguate([{1: 1}], zipcode="10014", guess=True), [{1: 1}]) self.assertEqual(disambiguate([{1: 1}, {2: 2}, {3: 3}], zipcode="10014", guess=True), [{1: 1}])
def test_disambiguate__zip(self): from ebpub.geocoder.base import disambiguate input_results = [ {"name": "bob", "zip": "12345"}, {"name": "bob", "zip": "67890"}, {"name": "bob", "zip": "55555"}, {"name": "joe", "zip": "55555"}, ] self.assertEqual(disambiguate(input_results, zipcode="Some Other Zipcode"), input_results) self.assertEqual(disambiguate(input_results, zipcode="67890"), [{"name": "bob", "zip": "67890"}])
def test_disambiguate__state(self): from ebpub.geocoder.base import disambiguate input_results = [{'name': 'bob', 'state': 'MA'}, {'name': 'bob', 'state': 'TN'}, {'name': 'bob', 'state': 'WA'}, {'name': 'joe', 'state': 'WA'}, ] self.assertEqual(disambiguate(input_results, state='Some Other State'), input_results) self.assertEqual(disambiguate(input_results, state='WA'), [{'name': 'bob', 'state': 'WA'}, {'name': 'joe', 'state': 'WA'}, ])
def test_disambiguate__state(self): from ebpub.geocoder.base import disambiguate input_results = [ {"name": "bob", "state": "MA"}, {"name": "bob", "state": "TN"}, {"name": "bob", "state": "WA"}, {"name": "joe", "state": "WA"}, ] self.assertEqual(disambiguate(input_results, state="Some Other State"), input_results) self.assertEqual( disambiguate(input_results, state="WA"), [{"name": "bob", "state": "WA"}, {"name": "joe", "state": "WA"}] )
def test_disambiguate__zip(self): from ebpub.geocoder.base import disambiguate input_results = [{'name': 'bob', 'zip': '12345'}, {'name': 'bob', 'zip': '67890'}, {'name': 'bob', 'zip': '55555'}, {'name': 'joe', 'zip': '55555'}, ] self.assertEqual(disambiguate(input_results, zipcode='Some Other Zipcode'), input_results) self.assertEqual(disambiguate(input_results, zipcode='67890'), [{'name': 'bob', 'zip': '67890'},]) # You can spell it either 'zipcode' or 'zip'. self.assertEqual(disambiguate(input_results, zip='67890'), [{'name': 'bob', 'zip': '67890'},])
def test_disambiguate__city(self): from ebpub.geocoder.base import disambiguate input_results = [ {"name": "bob", "city": "Brooklyn"}, {"name": "bob", "city": "Manchester"}, {"name": "bob", "city": "Oslo"}, {"name": "joe", "city": "Oslo"}, ] self.assertEqual(disambiguate(input_results, city="Some Other City"), input_results) self.assertEqual(disambiguate(input_results, city="Brooklyn"), [{"name": "bob", "city": "Brooklyn"}]) self.assertEqual( disambiguate(input_results, city="Oslo"), [{"name": "bob", "city": "Oslo"}, {"name": "joe", "city": "Oslo"}] ) self.assertEqual(disambiguate(input_results, city="Oslo", guess=True), [{"name": "bob", "city": "Oslo"}])
def test_disambiguate__all(self): from ebpub.geocoder.base import disambiguate input_results = [ {'name': 'bob', 'city': 'C1', 'state': 'S2', 'zip': 'Z1'}, {'name': 'bob', 'city': 'C1', 'state': 'S1', 'zip': 'Z1'}, {'name': 'bob', 'city': 'C1', 'state': 'S1', 'zip': 'Z2'}, {'name': 'bob', 'city': 'C2', 'state': 'S1', 'zip': 'Z1'}, {'name': 'bob', 'city': 'C2', 'state': 'S1', 'zip': 'Z1', 'suffix': 'SF1'}, ] self.assertEqual(disambiguate(input_results, city='C1', state='S1', zipcode='Z1'), [{'name': 'bob', 'city': 'C1', 'state': 'S1', 'zip': 'Z1'}]) # We could pass other args, eg. 'suffix', although # in practice this would require those keys to be present in Address dicts. self.assertEqual(disambiguate(input_results, suffix='SF1'), [{'name': 'bob', 'city': 'C2', 'state': 'S1', 'zip': 'Z1', 'suffix': 'SF1'}])
def test_disambiguate__city(self): from ebpub.geocoder.base import disambiguate input_results = [{'name': 'bob', 'city': 'Brooklyn'}, {'name': 'bob', 'city': 'Manchester'}, {'name': 'bob', 'city': 'Oslo'}, {'name': 'joe', 'city': 'Oslo'}, ] self.assertEqual(disambiguate(input_results, city='Some Other City'), input_results) self.assertEqual(disambiguate(input_results, city='Brooklyn'), [{'name': 'bob', 'city': 'Brooklyn'}]) self.assertEqual(disambiguate(input_results, city='Oslo'), [{'name': 'bob', 'city': 'Oslo'}, {'name': 'joe', 'city': 'Oslo'}]) self.assertEqual(disambiguate(input_results, city='Oslo', guess=True), [{'name': 'bob', 'city': 'Oslo'}])
def test_disambiguate__all(self): from ebpub.geocoder.base import disambiguate input_results = [ {"name": "bob", "city": "C1", "state": "S2", "zip": "Z1"}, {"name": "bob", "city": "C1", "state": "S1", "zip": "Z1"}, {"name": "bob", "city": "C1", "state": "S1", "zip": "Z2"}, {"name": "bob", "city": "C2", "state": "S1", "zip": "Z1"}, ] self.assertEqual( disambiguate(input_results, city="C1", state="S1", zipcode="Z1"), [{"name": "bob", "city": "C1", "state": "S1", "zip": "Z1"}], )
def test_disambiguate__no_args(self): from ebpub.geocoder.base import disambiguate self.assertEqual(disambiguate([]), []) self.assertEqual(disambiguate([]), [])