mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-16 15:47:58 +00:00
add tests for updating linked features
This commit is contained in:
91
test/bdd/db/update/linked_places.feature
Normal file
91
test/bdd/db/update/linked_places.feature
Normal file
@@ -0,0 +1,91 @@
|
||||
@DB
|
||||
Feature: Updates of linked places
|
||||
Tests that linked places are correctly added and deleted.
|
||||
|
||||
Scenario: Add linked place when linking relation is renamed
|
||||
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
|
||||
And searching for "foo" with dups
|
||||
Then results contain
|
||||
| osm_type |
|
||||
| R |
|
||||
When updating places
|
||||
| osm | class | type | name | admin | geometry |
|
||||
| R1 | boundary | administrative | foobar | 8 | poly-area:0.1 |
|
||||
Then placex contains
|
||||
| object | linked_place_id |
|
||||
| N1 | - |
|
||||
When searching for "foo" with dups
|
||||
Then results contain
|
||||
| osm_type |
|
||||
| N |
|
||||
|
||||
Scenario: Add linked place when linking relation 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
|
||||
And searching for "foo" with dups
|
||||
Then results contain
|
||||
| osm_type |
|
||||
| R |
|
||||
When marking for delete R1
|
||||
Then placex contains
|
||||
| object | linked_place_id |
|
||||
| N1 | - |
|
||||
When searching for "foo" with dups
|
||||
Then results contain
|
||||
| osm_type |
|
||||
| N |
|
||||
|
||||
Scenario: Remove linked place when linking relation is added
|
||||
Given the places
|
||||
| osm | class | type | name | geometry |
|
||||
| N1 | place | city | foo | 0 0 |
|
||||
When importing
|
||||
And searching for "foo" with dups
|
||||
Then results contain
|
||||
| osm_type |
|
||||
| N |
|
||||
When updating places
|
||||
| osm | class | type | name | admin | geometry |
|
||||
| R1 | boundary | administrative | foo | 8 | poly-area:0.1 |
|
||||
Then placex contains
|
||||
| object | linked_place_id |
|
||||
| N1 | R1 |
|
||||
When searching for "foo" with dups
|
||||
Then results contain
|
||||
| osm_type |
|
||||
| R |
|
||||
|
||||
Scenario: Remove linked place when linking relation is renamed
|
||||
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 | foobar | 8 | poly-area:0.1 |
|
||||
When importing
|
||||
And searching for "foo" with dups
|
||||
Then results contain
|
||||
| osm_type |
|
||||
| N |
|
||||
When updating places
|
||||
| osm | class | type | name | admin | geometry |
|
||||
| R1 | boundary | administrative | foo | 8 | poly-area:0.1 |
|
||||
Then placex contains
|
||||
| object | linked_place_id |
|
||||
| N1 | R1 |
|
||||
When searching for "foo" with dups
|
||||
Then results contain
|
||||
| osm_type |
|
||||
| R |
|
||||
|
||||
@@ -44,8 +44,8 @@ class SearchResponse(object):
|
||||
assert_equal(str(res[h]), str(row[h]))
|
||||
|
||||
|
||||
@when(u'searching for "(?P<query>.*)"')
|
||||
def query_cmd(context, query):
|
||||
@when(u'searching for "(?P<query>.*)"(?P<dups> with dups)?')
|
||||
def query_cmd(context, query, dups):
|
||||
""" Query directly via PHP script.
|
||||
"""
|
||||
cmd = [os.path.join(context.nominatim.build_dir, 'utils', 'query.php'),
|
||||
@@ -57,6 +57,9 @@ def query_cmd(context, query):
|
||||
if value:
|
||||
cmd.extend(('--' + h, value))
|
||||
|
||||
if dups:
|
||||
cmd.extend(('--dedupe', '0'))
|
||||
|
||||
proc = subprocess.Popen(cmd, cwd=context.nominatim.build_dir,
|
||||
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||
(outp, err) = proc.communicate()
|
||||
|
||||
Reference in New Issue
Block a user