X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/5dfa76a610972eea3930ecff1c41fb795ea2e7e4..e4796bb876bf75dd674ee3f25a89bebb7e037443:/test/bdd/steps/steps_osm_data.py diff --git a/test/bdd/steps/steps_osm_data.py b/test/bdd/steps/steps_osm_data.py index f8a6d3cd..a48d9cd6 100644 --- a/test/bdd/steps/steps_osm_data.py +++ b/test/bdd/steps/steps_osm_data.py @@ -1,6 +1,29 @@ +# SPDX-License-Identifier: GPL-2.0-only +# +# This file is part of Nominatim. (https://nominatim.org) +# +# Copyright (C) 2022 by the Nominatim developer community. +# For a full list of authors see the git log. import tempfile import random import os +from pathlib import Path + +from nominatim.tools.exec_utils import run_osm2pgsql + +def get_osm2pgsql_options(nominatim_env, fname, append): + return dict(import_file=fname, + osm2pgsql=str(nominatim_env.build_dir / 'osm2pgsql' / 'osm2pgsql'), + osm2pgsql_cache=50, + osm2pgsql_style=str(nominatim_env.src_dir / 'settings' / 'import-extratags.style'), + threads=1, + dsn=nominatim_env.get_libpq_dsn(), + flatnode_file='', + tablespaces=dict(slim_data='', slim_index='', + main_data='', main_index=''), + append=append + ) + def write_opl_file(opl, grid): """ Create a temporary OSM file from OPL and return the file name. It is @@ -22,6 +45,10 @@ def write_opl_file(opl, grid): return fd.name +@given(u'the scene (?P.+)') +def set_default_scene(context, scene): + context.scene = scene + @given(u'the ([0-9.]+ )?grid') def define_node_grid(context, grid_step): """ @@ -48,9 +75,10 @@ def load_osm_file(context): """ # create an OSM file and import it fname = write_opl_file(context.text, context.osm) - context.nominatim.run_setup_script('import-data', osm_file=fname, - osm2pgsql_cache=300) - os.remove(fname) + try: + run_osm2pgsql(get_osm2pgsql_options(context.nominatim, fname, append=False)) + finally: + os.remove(fname) ### reintroduce the triggers/indexes we've lost by having osm2pgsql set up place again cur = context.db.cursor() @@ -71,11 +99,12 @@ def update_from_osm_file(context): The data is expected as attached text in OPL format. """ context.nominatim.copy_from_place(context.db) - context.nominatim.run_setup_script('index', 'index-noanalyse') - context.nominatim.run_setup_script('create-functions', 'create-partition-functions', - 'enable-diff-updates') + context.nominatim.run_nominatim('index') + context.nominatim.run_nominatim('refresh', '--functions') # create an OSM file and import it fname = write_opl_file(context.text, context.osm) - context.nominatim.run_update_script(import_diff=fname) - os.remove(fname) + try: + run_osm2pgsql(get_osm2pgsql_options(context.nominatim, fname, append=True)) + finally: + os.remove(fname)