X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/b90e719da595b6760b39b7cd64ee29447de2d5e8..8e8f7a641b8b2eadd99e8e3198f762a3c3ebfd67:/test/python/tools/test_refresh_create_functions.py diff --git a/test/python/tools/test_refresh_create_functions.py b/test/python/tools/test_refresh_create_functions.py index 00b863ab..984a1610 100644 --- a/test/python/tools/test_refresh_create_functions.py +++ b/test/python/tools/test_refresh_create_functions.py @@ -1,51 +1,57 @@ +# SPDX-License-Identifier: GPL-3.0-or-later +# +# This file is part of Nominatim. (https://nominatim.org) +# +# Copyright (C) 2024 by the Nominatim developer community. +# For a full list of authors see the git log. """ Tests for creating PL/pgSQL functions for Nominatim. """ import pytest -from nominatim.tools.refresh import create_functions +from nominatim_db.tools.refresh import create_functions -@pytest.fixture -def sql_tmp_path(tmp_path, def_config): - def_config.lib_dir.sql = tmp_path - return tmp_path +class TestCreateFunctions: + @pytest.fixture(autouse=True) + def init_env(self, sql_preprocessor, temp_db_conn, def_config, tmp_path): + self.conn = temp_db_conn + self.config = def_config + def_config.lib_dir.sql = tmp_path -@pytest.fixture -def conn(sql_preprocessor, temp_db_conn): - return temp_db_conn + def write_functions(self, content): + sqlfile = self.config.lib_dir.sql / 'functions.sql' + sqlfile.write_text(content) -def test_create_functions(temp_db_cursor, conn, def_config, sql_tmp_path): - sqlfile = sql_tmp_path / 'functions.sql' - sqlfile.write_text("""CREATE OR REPLACE FUNCTION test() RETURNS INTEGER - AS $$ - BEGIN - RETURN 43; - END; - $$ LANGUAGE plpgsql IMMUTABLE; - """) - create_functions(conn, def_config) + def test_create_functions(self, temp_db_cursor): + self.write_functions("""CREATE OR REPLACE FUNCTION test() RETURNS INTEGER + AS $$ + BEGIN + RETURN 43; + END; + $$ LANGUAGE plpgsql IMMUTABLE; + """) - assert temp_db_cursor.scalar('SELECT test()') == 43 + create_functions(self.conn, self.config) + assert temp_db_cursor.scalar('SELECT test()') == 43 -@pytest.mark.parametrize("dbg,ret", ((True, 43), (False, 22))) -def test_create_functions_with_template(temp_db_cursor, conn, def_config, sql_tmp_path, - dbg, ret): - sqlfile = sql_tmp_path / 'functions.sql' - sqlfile.write_text("""CREATE OR REPLACE FUNCTION test() RETURNS INTEGER - AS $$ - BEGIN - {% if debug %} - RETURN 43; - {% else %} - RETURN 22; - {% endif %} - END; - $$ LANGUAGE plpgsql IMMUTABLE; - """) - create_functions(conn, def_config, enable_debug=dbg) + @pytest.mark.parametrize("dbg,ret", ((True, 43), (False, 22))) + def test_create_functions_with_template(self, temp_db_cursor, dbg, ret): + self.write_functions("""CREATE OR REPLACE FUNCTION test() RETURNS INTEGER + AS $$ + BEGIN + {% if debug %} + RETURN 43; + {% else %} + RETURN 22; + {% endif %} + END; + $$ LANGUAGE plpgsql IMMUTABLE; + """) - assert temp_db_cursor.scalar('SELECT test()') == ret + create_functions(self.conn, self.config, enable_debug=dbg) + + assert temp_db_cursor.scalar('SELECT test()') == ret