+ if not self.api_db_done:
+ 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())
+
+ try:
+ self.run_nominatim('import', '--osm-file', str(self.api_test_file))
+ if self.tokenizer != 'legacy_icu':
+ self.run_nominatim('add-data', '--tiger-data', str((testdata / 'tiger').resolve()))
+ self.run_nominatim('freeze')
+
+ if self.tokenizer != 'legacy_icu':
+ phrase_file = str((testdata / 'specialphrases_testdb.sql').resolve())
+ run_script(['psql', '-d', self.api_test_db, '-f', phrase_file])
+ else:
+ # XXX Temporary use the wiki while there is no CSV import
+ # available.
+ self.test_env['NOMINATIM_LANGUAGES'] = 'en'
+ self.run_nominatim('special-phrases', '--import-from-wiki')
+ del self.test_env['NOMINATIM_LANGUAGES']
+ except:
+ self.db_drop_database(self.api_test_db)
+ raise
+
+ tokenizer_factory.create_tokenizer(self.get_test_config(), init_db=False)
+
+