make sure outputs take into account linked place names

This commit is contained in:
Sarah Hoffmann
2022-03-16 21:44:52 +01:00
parent 17da5f45be
commit 524dc64ab7
5 changed files with 75 additions and 21 deletions

View File

@@ -18,8 +18,14 @@ Feature: Searching linked places
| N2 | R13 |
When sending search query "Vario"
Then results contain
| osm |
| R13 |
| osm | display_name |
| R13 | Garbo |
When sending search query "Vario"
| accept-language |
| it |
Then results contain
| osm | display_name |
| R13 | Vario |
Scenario: Differing names from linked places are searchable
@@ -38,5 +44,9 @@ Feature: Searching linked places
| N2 | R13 |
When sending search query "Vario"
Then results contain
| osm |
| R13 |
| osm | display_name |
| R13 | Garbo |
When sending search query "Garbo"
Then results contain
| osm | display_name |
| R13 | Garbo |

View File

@@ -117,8 +117,10 @@ Feature: Updates of linked places
| 1 | N3:label |
When importing
Then placex contains
| object | linked_place_id | name+name:de |
| object | linked_place_id | name+_place_name:de |
| R1 | - | pnt |
And placex contains
| object | linked_place_id | name+name:de |
| N3 | R1 | pnt |
When updating places
| osm | class | type | name+name:de | admin | geometry |
@@ -126,8 +128,43 @@ Feature: Updates of linked places
Then placex contains
| object | linked_place_id | name+name:de |
| N3 | R1 | newname |
And placex contains
| object | linked_place_id | name+_place_name:de |
| R1 | - | newname |
Scenario: Update linking relation when linkee name is deleted
Given the places
| osm | class | type | name | admin | geometry |
| R1 | boundary | administrative | rel | 8 | poly-area:0.1 |
And the places
| osm | class | type | name | admin | geometry |
| N3 | place | city | pnt | 30 | 0.00001 0 |
And the relations
| id | members |
| 1 | N3:label |
When importing
Then placex contains
| object | linked_place_id | name+_place_name | name+name |
| R1 | - | pnt | rel |
And placex contains
| object | linked_place_id | name+name |
| N3 | R1 | pnt |
When sending search query "pnt"
Then results contain
| osm |
| R1 |
When updating places
| osm | class | type | name+name:de | admin | geometry |
| N3 | place | city | depnt | 30 | 0.00001 0 |
Then placex contains
| object | linked_place_id | name+name:de |
| N3 | R1 | depnt |
And placex contains
| object | linked_place_id | name+_place_name:de | name+name |
| R1 | - | depnt | rel |
When sending search query "pnt"
Then exactly 0 results are returned
Scenario: Updating linkee extratags keeps linker's extratags
Given the named places
| osm | class | type | extra+wikidata | admin | geometry |

View File

@@ -62,8 +62,6 @@ class GenericResponse:
if errorcode == 200 and fmt != 'debug':
getattr(self, '_parse_' + fmt)()
else:
print("Bad response: ", page)
def _parse_json(self):
m = re.fullmatch(r'([\w$][^(]*)\((.*)\)', self.page)
@@ -74,13 +72,14 @@ class GenericResponse:
self.header['json_func'] = m.group(1)
self.result = json.JSONDecoder(object_pairs_hook=OrderedDict).decode(code)
if isinstance(self.result, OrderedDict):
self.result = [self.result]
if 'error' in self.result:
self.result = []
else:
self.result = [self.result]
def _parse_geojson(self):
self._parse_json()
if 'error' in self.result[0]:
self.result = []
else:
if self.result:
self.result = list(map(_geojson_result_to_json_result, self.result[0]['features']))
def _parse_geocodejson(self):