]> git.openstreetmap.org Git - nominatim.git/commitdiff
Merge pull request #2469 from lonvia/fix-tablespace-assignment
authorSarah Hoffmann <lonvia@denofr.de>
Fri, 15 Oct 2021 16:20:43 +0000 (18:20 +0200)
committerGitHub <noreply@github.com>
Fri, 15 Oct 2021 16:20:43 +0000 (18:20 +0200)
Fix template expressions for tablespaces

nominatim/db/sql_preprocessor.py
test/python/conftest.py
test/python/test_db_sql_preprocessor.py

index a1bf5b7f1418a0d65abd1199264a892f3d74f918..c8e07f6e64a4a18fcbe6bcd02808793f7daaa379 100644 (file)
@@ -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
 
index 74d3633968cb12c6c16733f997d3cd0f621c4d94..4812e3f00a2710bf52e6b2315b4f029c2e953407 100644 (file)
@@ -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
index 79f82daccd150a7b9371bcadd02ea6fc121ed8a2..2ca0c66112e8b8f094a2045e681cb3fa6bc10eae 100644 (file)
@@ -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