move get_addressdata() implementation to Python

The pgsql function get_addressdata() does a lookup of a lot of data
that is already available in Python.
This commit is contained in:
Sarah Hoffmann
2023-09-23 10:44:37 +02:00
parent 87c91ec5c4
commit 7fcbe13669
10 changed files with 261 additions and 116 deletions

View File

@@ -11,7 +11,7 @@ Feature: Querying fo postcode variants
When sending search query "399174"
Then results contain
| ID | type | display_name |
| 0 | postcode | 399174 |
| 0 | postcode | 399174, Singapore |
@fail-legacy
@@ -25,11 +25,11 @@ Feature: Querying fo postcode variants
When sending search query "3993 DX"
Then results contain
| ID | type | display_name |
| 0 | postcode | 3993 DX |
| 0 | postcode | 3993 DX, Nederland |
When sending search query "3993dx"
Then results contain
| ID | type | display_name |
| 0 | postcode | 3993 DX |
| 0 | postcode | 3993 DX, Nederland |
Examples:
| postcode |
@@ -49,7 +49,7 @@ Feature: Querying fo postcode variants
When sending search query "399174"
Then results contain
| ID | type | display_name |
| 0 | postcode | 399174 |
| 0 | postcode | 399174, Singapore |
@fail-legacy
@@ -63,11 +63,11 @@ Feature: Querying fo postcode variants
When sending search query "675"
Then results contain
| ID | type | display_name |
| 0 | postcode | AD675 |
| 0 | postcode | AD675, Andorra |
When sending search query "AD675"
Then results contain
| ID | type | display_name |
| 0 | postcode | AD675 |
| 0 | postcode | AD675, Andorra |
Examples:
| postcode |
@@ -89,9 +89,9 @@ Feature: Querying fo postcode variants
When sending search query "EH4 7EA"
Then results contain
| type | display_name |
| postcode | EH4 7EA |
| postcode | EH4 7EA, United Kingdom |
When sending search query "E4 7EA"
Then results contain
| type | display_name |
| postcode | E4 7EA |
| postcode | E4 7EA, United Kingdom |

View File

@@ -340,12 +340,6 @@ def test_lookup_osmline_with_address_details(apiobj):
result = apiobj.api.details(napi.PlaceID(9000), address_details=True)
assert result.address_rows == [
napi.AddressLine(place_id=None, osm_object=None,
category=('place', 'house_number'),
names={'ref': '2'}, extratags={},
admin_level=None, fromarea=True, isaddress=True,
rank_address=28, distance=0.0,
local_name='2'),
napi.AddressLine(place_id=332, osm_object=('W', 4),
category=('highway', 'residential'),
names={'name': 'Street'}, extratags={},
@@ -444,12 +438,6 @@ def test_lookup_tiger_with_address_details(apiobj):
result = apiobj.api.details(napi.PlaceID(9000), address_details=True)
assert result.address_rows == [
napi.AddressLine(place_id=None, osm_object=None,
category=('place', 'house_number'),
names={'ref': '2'}, extratags={},
admin_level=None, fromarea=True, isaddress=True,
rank_address=28, distance=0.0,
local_name='2'),
napi.AddressLine(place_id=332, osm_object=('W', 4),
category=('highway', 'residential'),
names={'name': 'Street'}, extratags={},
@@ -543,6 +531,12 @@ def test_lookup_postcode_with_address_details(apiobj):
result = apiobj.api.details(napi.PlaceID(9000), address_details=True)
assert result.address_rows == [
napi.AddressLine(place_id=9000, osm_object=None,
category=('place', 'postcode'),
names={'ref': '34 425'}, extratags={},
admin_level=15, fromarea=True, isaddress=True,
rank_address=25, distance=0.0,
local_name='34 425'),
napi.AddressLine(place_id=332, osm_object=('N', 3333),
category=('place', 'suburb'),
names={'name': 'Smallplace'}, extratags={},
@@ -555,12 +549,6 @@ def test_lookup_postcode_with_address_details(apiobj):
admin_level=15, fromarea=True, isaddress=True,
rank_address=16, distance=0.0,
local_name='Bigplace'),
napi.AddressLine(place_id=None, osm_object=None,
category=('place', 'postcode'),
names={'ref': '34 425'}, extratags={},
admin_level=None, fromarea=False, isaddress=True,
rank_address=5, distance=0.0,
local_name='34 425'),
napi.AddressLine(place_id=None, osm_object=None,
category=('place', 'country_code'),
names={'ref': 'gb'}, extratags={},

View File

@@ -23,6 +23,8 @@ def mkpoint(x, y):
class FakeRow:
def __init__(self, **kwargs):
if 'parent_place_id' not in kwargs:
kwargs['parent_place_id'] = None
for k, v in kwargs.items():
setattr(self, k, v)
self._mapping = kwargs