]> git.openstreetmap.org Git - nominatim.git/blobdiff - test/bdd/steps/steps_osm_data.py
Merge pull request #2562 from lonvia/copyright-headers
[nominatim.git] / test / bdd / steps / steps_osm_data.py
index f8a6d3cdce530610a79ff84c292db495e0282848..a48d9cd6d82e0938fff46aaeff8b41d047a69b60 100644 (file)
@@ -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
 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
 
 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
 
 
         return fd.name
 
+@given(u'the scene (?P<scene>.+)')
+def set_default_scene(context, scene):
+    context.scene = scene
+
 @given(u'the ([0-9.]+ )?grid')
 def define_node_grid(context, grid_step):
     """
 @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)
     """
     # 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()
 
     ### 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)
     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)
 
     # 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)