X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/4a2873617dcbaf58ff6135aa7d8dcb115c0cc5ba..616789bbccd4b35cc643b20c5af3c9835eb22643:/test/bdd/steps/steps_db_ops.py?ds=sidebyside diff --git a/test/bdd/steps/steps_db_ops.py b/test/bdd/steps/steps_db_ops.py index 9d443b43..72a610eb 100644 --- a/test/bdd/steps/steps_db_ops.py +++ b/test/bdd/steps/steps_db_ops.py @@ -1,3 +1,4 @@ +import logging from itertools import chain import psycopg2.extras @@ -5,7 +6,7 @@ import psycopg2.extras from place_inserter import PlaceColumn from table_compare import NominatimID, DBRow -from nominatim.indexer.indexer import Indexer +from nominatim.indexer import indexer def check_database_integrity(context): """ Check some generic constraints on the tables. @@ -86,11 +87,25 @@ def import_and_index_data_from_place_table(context): """ Import data previously set up in the place table. """ context.nominatim.copy_from_place(context.db) - context.nominatim.run_setup_script('calculate-postcodes') + + # XXX use tool function as soon as it is ported + with context.db.cursor() as cur: + with (context.nominatim.src_dir / 'lib-sql' / 'postcode_tables.sql').open('r') as fd: + cur.execute(fd.read()) + cur.execute(""" + INSERT INTO location_postcode + (place_id, indexed_status, country_code, postcode, geometry) + SELECT nextval('seq_place'), 1, country_code, + upper(trim (both ' ' from address->'postcode')) as pc, + ST_Centroid(ST_Collect(ST_Centroid(geometry))) + FROM placex + WHERE address ? 'postcode' AND address->'postcode' NOT SIMILAR TO '%(,|;)%' + AND geometry IS NOT null + GROUP BY country_code, pc""") # Call directly as the refresh function does not include postcodes. - indexer = Indexer(context.nominatim.test_env['NOMINATIM_DATABASE_DSN'][6:], 1) - indexer.index_full(analyse=False) + indexer.LOG.setLevel(logging.ERROR) + indexer.Indexer(context.nominatim.get_libpq_dsn(), 1).index_full(analyse=False) check_database_integrity(context)