]> git.openstreetmap.org Git - nominatim.git/blobdiff - tests/steps/db_setup.py
add mention of required Tiger files for test database
[nominatim.git] / tests / steps / db_setup.py
index 7d1ea8d3c11a59341d995ca3dfb1d1556d5377d0..727e6105bb0d916a219c3f163252efbf30b59190 100644 (file)
@@ -23,6 +23,7 @@ import os
 import subprocess
 import random
 import base64
+import sys
 
 psycopg2.extensions.register_type(psycopg2.extensions.UNICODE)
 
@@ -95,6 +96,9 @@ def _format_placex_cols(cols, geomtype, force_name):
         else:
             coords = "'%s'::geometry" % coords.wkt
         cols['geometry'] = coords
+    for k in cols:
+        if not cols[k]:
+            cols[k] = None
 
 
 def _insert_place_table_nodes(places, force_name):
@@ -140,8 +144,8 @@ def import_set_scene(step, scene):
 
 @step(u'the (named )?place (node|way|area)s')
 def import_place_table_nodes(step, named, osmtype):
-    """Insert a list of nodes into the placex table.
-       Expects a table where columns are named in the same way as placex.
+    """Insert a list of nodes into the place table.
+       Expects a table where columns are named in the same way as place.
     """
     cur = world.conn.cursor()
     cur.execute('ALTER TABLE place DISABLE TRIGGER place_before_insert')
@@ -181,9 +185,9 @@ def import_fill_planet_osm_rels(step):
         if not members:
             members = None
 
-        cur.execute("""INSERT INTO planet_osm_rels 
-                      (id, way_off, rel_off, parts, members, tags, pending)
-                      VALUES (%s, %s, %s, %s, %s, %s, false)""",
+        cur.execute("""INSERT INTO planet_osm_rels
+                      (id, way_off, rel_off, parts, members, tags)
+                      VALUES (%s, %s, %s, %s, %s, %s)""",
                    (line['id'], len(parts['n']), len(parts['n']) + len(parts['w']),
                    parts['n'] + parts['w'] + parts['r'], members, tags))
     world.conn.commit()
@@ -199,9 +203,8 @@ def import_fill_planet_osm_ways(step):
             tags = None
         nodes = [int(x.strip()) for x in line['nodes'].split(',')]
 
-        cur.execute("""INSERT INTO planet_osm_ways
-                       (id, nodes, tags, pending)
-                       VALUES (%s, %s, %s, false)""",
+        cur.execute("""INSERT INTO planet_osm_ways (id, nodes, tags)
+                       VALUES (%s, %s, %s)""",
                     (line['id'], nodes, tags))
     world.conn.commit()
 
@@ -212,18 +215,19 @@ def import_database(step):
     """ Runs the actual indexing. """
     world.run_nominatim_script('setup', 'create-functions', 'create-partition-functions')
     cur = world.conn.cursor()
+    #world.db_dump_table('place')
     cur.execute("""insert into placex (osm_type, osm_id, class, type, name, admin_level,
-                              housenumber, street, addr_place, isin, postcode, country_code, extratags,
-                              geometry) select * from place""")
+                   housenumber, street, addr_place, isin, postcode, country_code, extratags,
+                   geometry) select * from place where not (class='place' and type='houses' and osm_type='W')""")
+    cur.execute("""select insert_osmline (osm_id, housenumber, street, addr_place, postcode, country_code, geometry) from place where class='place' and type='houses' and osm_type='W'""")
     world.conn.commit()
     world.run_nominatim_script('setup', 'index', 'index-noanalyse')
     #world.db_dump_table('placex')
-
+    #world.db_dump_table('location_property_osmline')
 
 @step(u'updating place (node|way|area)s')
 def update_place_table_nodes(step, osmtype):
-    """ Replace a geometry in place by reinsertion and reindex database.
-    """
+    """ Replace a geometry in place by reinsertion and reindex database."""
     world.run_nominatim_script('setup', 'create-functions', 'create-partition-functions', 'enable-diff-updates')
     if osmtype == 'node':
         _insert_place_table_nodes(step.hashes, False)
@@ -263,10 +267,12 @@ def query_cmd(step, query, with_dups):
            '--search', query]
     if with_dups is not None:
         cmd.append('--nodedupe')
-    proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+    proc = subprocess.Popen(cmd, cwd=world.config.source_dir,
+                            stdout=subprocess.PIPE, stderr=subprocess.PIPE)
     (outp, err) = proc.communicate()
     assert (proc.returncode == 0), "query.php failed with message: %s" % err
     world.page = outp
-    world.response_format = 'json'   
+    world.response_format = 'json'
+    world.request_type = 'search'
     world.returncode = 200