From 0e9e2bbdca37801215d5b3c1e65c9c417bf27796 Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Sun, 27 Nov 2016 13:39:43 +0100 Subject: [PATCH] add tests for updating linked features --- test/bdd/db/update/linked_places.feature | 91 ++++++++++++++++++++++++ test/bdd/steps/queries.py | 7 +- 2 files changed, 96 insertions(+), 2 deletions(-) create mode 100644 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 new file mode 100644 index 00000000..17ca8003 --- /dev/null +++ b/test/bdd/db/update/linked_places.feature @@ -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 | + diff --git a/test/bdd/steps/queries.py b/test/bdd/steps/queries.py index acb7ee91..f37f7e7b 100644 --- a/test/bdd/steps/queries.py +++ b/test/bdd/steps/queries.py @@ -44,8 +44,8 @@ class SearchResponse(object): assert_equal(str(res[h]), str(row[h])) -@when(u'searching for "(?P.*)"') -def query_cmd(context, query): +@when(u'searching for "(?P.*)"(?P 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() -- 2.39.5