X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/4a5a997e18c61a37b0e12f840e735e305edc416f..63dc4b39bc6bc0bf5a95d0c1a8298f5349637a9e:/test/bdd/db/update/linked_places.feature diff --git a/test/bdd/db/update/linked_places.feature b/test/bdd/db/update/linked_places.feature index 17ca8003..99614b7f 100644 --- a/test/bdd/db/update/linked_places.feature +++ b/test/bdd/db/update/linked_places.feature @@ -10,7 +10,9 @@ Feature: Updates of linked places | osm | class | type | name | admin | geometry | | R1 | boundary | administrative | foo | 8 | poly-area:0.1 | When importing - And searching for "foo" with dups + And sending search query "foo" + | dups | + | 1 | Then results contain | osm_type | | R | @@ -20,7 +22,9 @@ Feature: Updates of linked places Then placex contains | object | linked_place_id | | N1 | - | - When searching for "foo" with dups + When sending search query "foo" + | dups | + | 1 | Then results contain | osm_type | | N | @@ -33,7 +37,9 @@ Feature: Updates of linked places | osm | class | type | name | admin | geometry | | R1 | boundary | administrative | foo | 8 | poly-area:0.1 | When importing - And searching for "foo" with dups + And sending search query "foo" + | dups | + | 1 | Then results contain | osm_type | | R | @@ -41,7 +47,9 @@ Feature: Updates of linked places Then placex contains | object | linked_place_id | | N1 | - | - When searching for "foo" with dups + When sending search query "foo" + | dups | + | 1 | Then results contain | osm_type | | N | @@ -51,7 +59,9 @@ Feature: Updates of linked places | osm | class | type | name | geometry | | N1 | place | city | foo | 0 0 | When importing - And searching for "foo" with dups + And sending search query "foo" + | dups | + | 1 | Then results contain | osm_type | | N | @@ -61,7 +71,9 @@ Feature: Updates of linked places Then placex contains | object | linked_place_id | | N1 | R1 | - When searching for "foo" with dups + When sending search query "foo" + | dups | + | 1 | Then results contain | osm_type | | R | @@ -74,7 +86,9 @@ Feature: Updates of linked places | osm | class | type | name | admin | geometry | | R1 | boundary | administrative | foobar | 8 | poly-area:0.1 | When importing - And searching for "foo" with dups + And sending search query "foo" + | dups | + | 1 | Then results contain | osm_type | | N | @@ -84,8 +98,124 @@ Feature: Updates of linked places Then placex contains | object | linked_place_id | | N1 | R1 | - When searching for "foo" with dups + When sending search query "foo" + | dups | + | 1 | Then results contain | osm_type | | R | + Scenario: Update linking relation when linkee name is updated + 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+name:de | 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: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 | + | N3 | place | city | newname | 30 | 0.00001 0 | + 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 | + | R1 | boundary | administrative | 34 | 8 | poly-area:0.1 | + And the named places + | osm | class | type | geometry | + | N3 | place | city | 0.00001 0 | + And the relations + | id | members | + | 1 | N3:label | + When importing + Then placex contains + | object | extratags | + | R1 | 'wikidata' : '34', 'linked_place' : 'city' | + When updating places + | osm | class | type | name | extra+oneway | admin | geometry | + | N3 | place | city | newname | yes | 30 | 0.00001 0 | + Then placex contains + | object | extratags | + | R1 | 'wikidata' : '34', 'oneway' : 'yes', 'linked_place' : 'city' | + + Scenario: Remove linked_place info when linkee is removed + Given the places + | osm | class | type | name | geometry | + | N1 | place | city | foo | 0 0 | + And the places + | osm | class | type | name | admin | geometry | + | R1 | boundary | administrative | foo | 8 | poly-area:0.1 | + When importing + Then placex contains + | object | extratags | + | R1 | 'linked_place' : 'city' | + When marking for delete N1 + Then placex contains + | object | extratags | + | R1 | | + + Scenario: Update linked_place info when linkee type changes + Given the places + | osm | class | type | name | geometry | + | N1 | place | city | foo | 0 0 | + And the places + | osm | class | type | name | admin | geometry | + | R1 | boundary | administrative | foo | 8 | poly-area:0.1 | + When importing + Then placex contains + | object | extratags | + | R1 | 'linked_place' : 'city' | + When updating places + | osm | class | type | name | geometry | + | N1 | place | town | foo | 0 0 | + Then placex contains + | object | extratags | + | R1 | 'linked_place' : 'town' |