From: Sarah Hoffmann Date: Fri, 15 Oct 2021 16:21:13 +0000 (+0200) Subject: Merge remote-tracking branch 'upstream/master' X-Git-Tag: deploy~149 X-Git-Url: https://git.openstreetmap.org/nominatim.git/commitdiff_plain/33b611e24313db83b7a5e175a4e11c5f66c4d25d?hp=8c54a274e7180b0e06f9581bc16305f87c8ae412 Merge remote-tracking branch 'upstream/master' --- diff --git a/docs/admin/Customization.md b/docs/admin/Customization.md index 37335638..fc1d45cf 100644 --- a/docs/admin/Customization.md +++ b/docs/admin/Customization.md @@ -48,14 +48,14 @@ address set to complement the OSM house number data in the US. You can add TIGER data to your own Nominatim instance by following these steps. The entire US adds about 10GB to your database. - 1. Get preprocessed TIGER 2020 data: + 1. Get preprocessed TIGER 2021 data: cd $PROJECT_DIR - wget https://nominatim.org/data/tiger2020-nominatim-preprocessed.csv.tar.gz + wget https://nominatim.org/data/tiger2021-nominatim-preprocessed.csv.tar.gz 2. Import the data into your Nominatim database: - nominatim add-data --tiger-data tiger2020-nominatim-preprocessed.csv.tar.gz + nominatim add-data --tiger-data tiger2021-nominatim-preprocessed.csv.tar.gz 3. Enable use of the Tiger data in your `.env` by adding: diff --git a/nominatim/db/sql_preprocessor.py b/nominatim/db/sql_preprocessor.py index a1bf5b7f..c8e07f6e 100644 --- a/nominatim/db/sql_preprocessor.py +++ b/nominatim/db/sql_preprocessor.py @@ -36,7 +36,7 @@ def _setup_tablespace_sql(config): tspace = getattr(config, 'TABLESPACE_{}_{}'.format(subset, kind)) if tspace: tspace = 'TABLESPACE "{}"'.format(tspace) - out['{}_{}'.format(subset.lower, kind.lower())] = tspace + out['{}_{}'.format(subset.lower(), kind.lower())] = tspace return out diff --git a/test/python/conftest.py b/test/python/conftest.py index 74d36339..4812e3f0 100644 --- a/test/python/conftest.py +++ b/test/python/conftest.py @@ -226,14 +226,19 @@ def osm2pgsql_options(temp_db): tablespaces=dict(slim_data='', slim_index='', main_data='', main_index='')) + @pytest.fixture -def sql_preprocessor(temp_db_conn, tmp_path, table_factory, temp_db_with_extensions): +def sql_preprocessor_cfg(tmp_path, table_factory, temp_db_with_extensions): table_factory('country_name', 'partition INT', ((0, ), (1, ), (2, ))) cfg = Configuration(None, SRC_DIR.resolve() / 'settings') cfg.set_libdirs(module='.', osm2pgsql='.', php=SRC_DIR / 'lib-php', sql=tmp_path, data=SRC_DIR / 'data') + return cfg - return SQLPreprocessor(temp_db_conn, cfg) + +@pytest.fixture +def sql_preprocessor(sql_preprocessor_cfg, temp_db_conn): + return SQLPreprocessor(temp_db_conn, sql_preprocessor_cfg) @pytest.fixture diff --git a/test/python/test_db_sql_preprocessor.py b/test/python/test_db_sql_preprocessor.py index 79f82dac..2ca0c661 100644 --- a/test/python/test_db_sql_preprocessor.py +++ b/test/python/test_db_sql_preprocessor.py @@ -3,6 +3,8 @@ Tests for SQL preprocessing. """ import pytest +from nominatim.db.sql_preprocessor import SQLPreprocessor + @pytest.fixture def sql_factory(tmp_path): def _mk_sql(sql_body): @@ -22,11 +24,20 @@ def sql_factory(tmp_path): ("'{{db.partitions|join}}'", '012'), ("{% if 'country_name' in db.tables %}'yes'{% else %}'no'{% endif %}", "yes"), ("{% if 'xxx' in db.tables %}'yes'{% else %}'no'{% endif %}", "no"), + ("'{{db.tablespace.address_data}}'", ""), + ("'{{db.tablespace.search_data}}'", 'TABLESPACE "dsearch"'), + ("'{{db.tablespace.address_index}}'", 'TABLESPACE "iaddress"'), + ("'{{db.tablespace.aux_data}}'", 'TABLESPACE "daux"') ]) -def test_load_file_simple(sql_preprocessor, sql_factory, temp_db_conn, temp_db_cursor, expr, ret): +def test_load_file_simple(sql_preprocessor_cfg, sql_factory, + temp_db_conn, temp_db_cursor, monkeypatch, + expr, ret): + monkeypatch.setenv('NOMINATIM_TABLESPACE_SEARCH_DATA', 'dsearch') + monkeypatch.setenv('NOMINATIM_TABLESPACE_ADDRESS_INDEX', 'iaddress') + monkeypatch.setenv('NOMINATIM_TABLESPACE_AUX_DATA', 'daux') sqlfile = sql_factory("RETURN {};".format(expr)) - sql_preprocessor.run_sql_file(temp_db_conn, sqlfile) + SQLPreprocessor(temp_db_conn, sql_preprocessor_cfg).run_sql_file(temp_db_conn, sqlfile) assert temp_db_cursor.scalar('SELECT test()') == ret