X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/9659afbade47d1ec6d5359b2b21e1e874516ed80..734dff037405469ada9a226be9c98be583823226:/test/bdd/steps/nominatim_environment.py diff --git a/test/bdd/steps/nominatim_environment.py b/test/bdd/steps/nominatim_environment.py index 17a76745..ba19bb48 100644 --- a/test/bdd/steps/nominatim_environment.py +++ b/test/bdd/steps/nominatim_environment.py @@ -6,14 +6,11 @@ # For a full list of authors see the git log. from pathlib import Path import importlib -import sys import tempfile import psycopg from psycopg import sql as pysql -sys.path.insert(1, str((Path(__file__) / '..' / '..' / '..' / '..'/ 'src').resolve())) - from nominatim_db import cli from nominatim_db.config import Configuration from nominatim_db.db.connection import Connection, register_hstore, execute_scalar @@ -26,7 +23,6 @@ class NominatimEnvironment: """ def __init__(self, config): - self.build_dir = Path(config['BUILDDIR']).resolve() self.src_dir = (Path(__file__) / '..' / '..' / '..' / '..').resolve() self.db_host = config['DB_HOST'] self.db_port = config['DB_PORT'] @@ -38,11 +34,8 @@ class NominatimEnvironment: self.api_test_file = config['API_TEST_FILE'] self.tokenizer = config['TOKENIZER'] self.import_style = config['STYLE'] - self.server_module_path = config['SERVER_MODULE_PATH'] self.reuse_template = not config['REMOVE_TEMPLATE'] self.keep_scenario_db = config['KEEP_TEST_DB'] - self.code_coverage_path = config['PHPCOV'] - self.code_coverage_id = 1 self.default_config = Configuration(None).get_os_env() self.test_env = None @@ -50,11 +43,9 @@ class NominatimEnvironment: self.api_db_done = False self.website_dir = None - self.api_engine = None - if config['API_ENGINE'] != 'php': - if not hasattr(self, f"create_api_request_func_{config['API_ENGINE']}"): - raise RuntimeError(f"Unknown API engine '{config['API_ENGINE']}'") - self.api_engine = getattr(self, f"create_api_request_func_{config['API_ENGINE']}")() + if not hasattr(self, f"create_api_request_func_{config['API_ENGINE']}"): + raise RuntimeError(f"Unknown API engine '{config['API_ENGINE']}'") + self.api_engine = getattr(self, f"create_api_request_func_{config['API_ENGINE']}")() def connect_database(self, dbname): """ Return a connection to the database with the given name. @@ -71,13 +62,6 @@ class NominatimEnvironment: dbargs['password'] = self.db_pass return psycopg.connect(**dbargs) - def next_code_coverage_file(self): - """ Generate the next name for a coverage file. - """ - fn = Path(self.code_coverage_path) / "{:06d}.cov".format(self.code_coverage_id) - self.code_coverage_id += 1 - - return fn.resolve() def write_nominatim_config(self, dbname): """ Set up a custom test configuration that connects to the given @@ -107,38 +91,19 @@ class NominatimEnvironment: self.test_env['NOMINATIM_DATADIR'] = str((self.src_dir / 'data').resolve()) self.test_env['NOMINATIM_SQLDIR'] = str((self.src_dir / 'lib-sql').resolve()) self.test_env['NOMINATIM_CONFIGDIR'] = str((self.src_dir / 'settings').resolve()) - self.test_env['NOMINATIM_DATABASE_MODULE_SRC_PATH'] = str((self.build_dir / 'module').resolve()) - self.test_env['NOMINATIM_OSM2PGSQL_BINARY'] = str((self.build_dir / 'osm2pgsql' / 'osm2pgsql').resolve()) if self.tokenizer is not None: self.test_env['NOMINATIM_TOKENIZER'] = self.tokenizer if self.import_style is not None: self.test_env['NOMINATIM_IMPORT_STYLE'] = self.import_style - if self.server_module_path: - self.test_env['NOMINATIM_DATABASE_MODULE_PATH'] = self.server_module_path - else: - # avoid module being copied into the temporary environment - self.test_env['NOMINATIM_DATABASE_MODULE_PATH'] = str((self.build_dir / 'module').resolve()) - if self.website_dir is not None: self.website_dir.cleanup() self.website_dir = tempfile.TemporaryDirectory() - try: - conn = self.connect_database(dbname) - except: - conn = False - refresh.setup_website(Path(self.website_dir.name) / 'website', - self.get_test_config(), conn) - if conn: - conn.close() - def get_test_config(self): cfg = Configuration(Path(self.website_dir.name), environ=self.test_env) - cfg.set_libdirs(module=self.build_dir / 'module', - osm2pgsql=self.build_dir / 'osm2pgsql' / 'osm2pgsql') return cfg def get_libpq_dsn(self): @@ -217,12 +182,8 @@ class NominatimEnvironment: 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') - run_script(['psql', '-d', self.api_test_db, '-f', phrase_file]) - else: - csv_path = str(testdata / 'full_en_phrases_test.csv') - self.run_nominatim('special-phrases', '--import-from-csv', csv_path) + 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) raise @@ -305,8 +266,7 @@ class NominatimEnvironment: if self.website_dir is not None: cmdline = list(cmdline) + ['--project-dir', self.website_dir.name] - cli.nominatim(module_dir='', - osm2pgsql_path=str(self.build_dir / 'osm2pgsql' / 'osm2pgsql'), + cli.nominatim(osm2pgsql_path=None, cli_args=cmdline, environ=self.test_env)