mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-16 15:47:58 +00:00
Merge pull request #2553 from lonvia/revert-street-matching-to-full-names
Revert street matching to full names
This commit is contained in:
@@ -1,3 +1,3 @@
|
||||
[behave]
|
||||
show_skipped=False
|
||||
tags=~@Fail
|
||||
default_tags=~@Fail
|
||||
|
||||
@@ -87,6 +87,52 @@ Feature: Parenting of objects
|
||||
| N3 | W2 |
|
||||
| N4 | W1 |
|
||||
|
||||
@fail-legacy
|
||||
Scenario: addr:street tag parents to appropriately named street, locale names
|
||||
Given the scene roads-with-pois
|
||||
And the places
|
||||
| osm | class | type | street| addr+street:de | geometry |
|
||||
| N1 | place | house | south | Süd | :p-N1 |
|
||||
| N2 | place | house | north | Nord | :p-N2 |
|
||||
| N3 | place | house | south | Süd | :p-S1 |
|
||||
| N4 | place | house | north | Nord | :p-S2 |
|
||||
And the places
|
||||
| osm | class | type | name | geometry |
|
||||
| W1 | highway | residential | Nord | :w-north |
|
||||
| W2 | highway | residential | Süd | :w-south |
|
||||
And the places
|
||||
| osm | class | type | name | name+name:old |
|
||||
| N5 | place | hamlet | south | north |
|
||||
When importing
|
||||
Then placex contains
|
||||
| object | parent_place_id |
|
||||
| N1 | W2 |
|
||||
| N2 | W1 |
|
||||
| N3 | W2 |
|
||||
| N4 | W1 |
|
||||
|
||||
Scenario: addr:street tag parents to appropriately named street with abbreviation
|
||||
Given the scene roads-with-pois
|
||||
And the places
|
||||
| osm | class | type | street| geometry |
|
||||
| N1 | place | house | south st | :p-N1 |
|
||||
| N2 | place | house | north st | :p-N2 |
|
||||
| N3 | place | house | south st | :p-S1 |
|
||||
| N4 | place | house | north st | :p-S2 |
|
||||
And the places
|
||||
| osm | class | type | name+name:en | geometry |
|
||||
| W1 | highway | residential | north street | :w-north |
|
||||
| W2 | highway | residential | south street | :w-south |
|
||||
When importing
|
||||
Then placex contains
|
||||
| object | parent_place_id |
|
||||
| N1 | W2 |
|
||||
| N2 | W1 |
|
||||
| N3 | W2 |
|
||||
| N4 | W1 |
|
||||
|
||||
|
||||
|
||||
Scenario: addr:street tag parents to next named street
|
||||
Given the scene roads-with-pois
|
||||
And the places
|
||||
|
||||
@@ -49,3 +49,9 @@ def before_scenario(context, scenario):
|
||||
def after_scenario(context, scenario):
|
||||
if 'DB' in context.tags:
|
||||
context.nominatim.teardown_db(context)
|
||||
|
||||
|
||||
def before_tag(context, tag):
|
||||
if tag == 'fail-legacy':
|
||||
if context.config.userdata['TOKENIZER'] in (None, 'legacy'):
|
||||
context.scenario.skip("Not implemented in legacy tokenizer")
|
||||
|
||||
@@ -471,9 +471,25 @@ class TestPlaceAddress:
|
||||
|
||||
|
||||
def test_process_place_street(self):
|
||||
self.analyzer.process_place(PlaceInfo({'name': {'name' : 'Grand Road'}}))
|
||||
info = self.process_address(street='Grand Road')
|
||||
|
||||
assert eval(info['street']) == self.name_token_set('GRAND', 'ROAD')
|
||||
assert eval(info['street']) == self.name_token_set('#Grand Road')
|
||||
|
||||
|
||||
def test_process_place_nonexisting_street(self):
|
||||
info = self.process_address(street='Grand Road')
|
||||
|
||||
assert 'street' not in info
|
||||
|
||||
|
||||
def test_process_place_multiple_street_tags(self):
|
||||
self.analyzer.process_place(PlaceInfo({'name': {'name' : 'Grand Road',
|
||||
'ref': '05989'}}))
|
||||
info = self.process_address(**{'street': 'Grand Road',
|
||||
'street:sym_ul': '05989'})
|
||||
|
||||
assert eval(info['street']) == self.name_token_set('#Grand Road', '#05989')
|
||||
|
||||
|
||||
def test_process_place_street_empty(self):
|
||||
@@ -482,12 +498,28 @@ class TestPlaceAddress:
|
||||
assert 'street' not in info
|
||||
|
||||
|
||||
def test_process_place_street_from_cache(self):
|
||||
self.analyzer.process_place(PlaceInfo({'name': {'name' : 'Grand Road'}}))
|
||||
self.process_address(street='Grand Road')
|
||||
|
||||
# request address again
|
||||
info = self.process_address(street='Grand Road')
|
||||
|
||||
assert eval(info['street']) == self.name_token_set('#Grand Road')
|
||||
|
||||
|
||||
def test_process_place_place(self):
|
||||
info = self.process_address(place='Honu Lulu')
|
||||
|
||||
assert eval(info['place']) == self.name_token_set('HONU', 'LULU')
|
||||
|
||||
|
||||
def test_process_place_place_extra(self):
|
||||
info = self.process_address(**{'place:en': 'Honu Lulu'})
|
||||
|
||||
assert 'place' not in info
|
||||
|
||||
|
||||
def test_process_place_place_empty(self):
|
||||
info = self.process_address(place='🜵')
|
||||
|
||||
@@ -507,6 +539,14 @@ class TestPlaceAddress:
|
||||
assert result == {'city': city, 'suburb': city, 'state': state}
|
||||
|
||||
|
||||
def test_process_place_multiple_address_terms(self):
|
||||
info = self.process_address(**{'city': 'Bruxelles', 'city:de': 'Brüssel'})
|
||||
|
||||
result = {k: eval(v) for k,v in info['addr'].items()}
|
||||
|
||||
assert result == {'city': self.name_token_set('Bruxelles')}
|
||||
|
||||
|
||||
def test_process_place_address_terms_empty(self):
|
||||
info = self.process_address(country='de', city=' ', street='Hauptstr',
|
||||
full='right behind the church')
|
||||
|
||||
Reference in New Issue
Block a user