From 0a73ed7d6456c745fa710c0f8bc8b82d877c844e Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Tue, 27 Sep 2022 23:13:29 +0200 Subject: [PATCH] add secondary importance to API BDD tests Also fixes a path issue during API test DB creation that could never possibly have worked. --- test/bdd/api/search/params.feature | 17 +++++++++-------- test/bdd/steps/nominatim_environment.py | 12 +++++++----- test/testdb/secondary_importance.sql.gz | Bin 0 -> 18495 bytes 3 files changed, 16 insertions(+), 13 deletions(-) create mode 100644 test/testdb/secondary_importance.sql.gz diff --git a/test/bdd/api/search/params.feature b/test/bdd/api/search/params.feature index 300948a9..af83bd33 100644 --- a/test/bdd/api/search/params.feature +++ b/test/bdd/api/search/params.feature @@ -68,14 +68,15 @@ Feature: Search queries | 0 | Then there are duplicates + @fail-legacy Scenario: Search with bounded viewbox in right area - When sending json search query "bar" with address + When sending json search query "post" with address | bounded | viewbox | | 1 | 9,47,10,48 | Then result addresses contain | ID | town | | 0 | Vaduz | - When sending json search query "bar" with address + When sending json search query "post" with address | bounded | viewbox | | 1 | 9.49712,47.17122,9.52605,47.16242 | Then result addresses contain @@ -118,18 +119,18 @@ Feature: Search queries Then result has centroid in 9.49712,47.16242,9.52605,47.17122 Scenario: Prefer results within viewbox - When sending json search query "Gässle" with address - | accept-language | - | en | - Then result addresses contain - | ID | town | - | 0 | Balzers | When sending json search query "Gässle" with address | accept-language | viewbox | | en | 9.52413,47.10759,9.53140,47.10539 | Then result addresses contain | ID | village | | 0 | Triesen | + When sending json search query "Gässle" with address + | accept-language | viewbox | + | en | 9.45949,47.08421,9.54094,47.05466 | + Then result addresses contain + | ID | town | + | 0 | Balzers | Scenario: viewboxes cannot be points When sending json search query "foo" diff --git a/test/bdd/steps/nominatim_environment.py b/test/bdd/steps/nominatim_environment.py index e7234788..1feafd75 100644 --- a/test/bdd/steps/nominatim_environment.py +++ b/test/bdd/steps/nominatim_environment.py @@ -201,19 +201,21 @@ class NominatimEnvironment: self.api_db_done = True if not self._reuse_or_drop_db(self.api_test_db): - testdata = Path('__file__') / '..' / '..' / 'testdb' - self.test_env['NOMINATIM_WIKIPEDIA_DATA_PATH'] = str(testdata.resolve()) + testdata = (Path(__file__) / '..' / '..' / '..' / 'testdb').resolve() + self.test_env['NOMINATIM_WIKIPEDIA_DATA_PATH'] = str(testdata) + simp_file = Path(self.website_dir.name) / 'secondary_importance.sql.gz' + simp_file.symlink_to(testdata / 'secondary_importance.sql.gz') try: self.run_nominatim('import', '--osm-file', str(self.api_test_file)) - self.run_nominatim('add-data', '--tiger-data', str((testdata / 'tiger').resolve())) + self.run_nominatim('add-data', '--tiger-data', str(testdata / 'tiger')) self.run_nominatim('freeze') if self.tokenizer == 'legacy': - phrase_file = str((testdata / 'specialphrases_testdb.sql').resolve()) + phrase_file = str(testdata / 'specialphrases_testdb.sql') run_script(['psql', '-d', self.api_test_db, '-f', phrase_file]) else: - csv_path = str((testdata / 'full_en_phrases_test.csv').resolve()) + csv_path = str(testdata / 'full_en_phrases_test.csv') self.run_nominatim('special-phrases', '--import-from-csv', csv_path) except: self.db_drop_database(self.api_test_db) diff --git a/test/testdb/secondary_importance.sql.gz b/test/testdb/secondary_importance.sql.gz new file mode 100644 index 0000000000000000000000000000000000000000..e9c115d1474fda8339795781dc90c45c26ea8f2c GIT binary patch literal 18495 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 I*&4d(KfsLCbN~PV literal 0 HcmV?d00001 -- 2.45.1