add tests for updating linked features

This commit is contained in:
Sarah Hoffmann
2016-11-27 13:39:43 +01:00
parent 4f2d73aa7c
commit 0e9e2bbdca
2 changed files with 96 additions and 2 deletions

View 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 |

View File

@@ -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()