X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/a52ed366e42b3309463b807cd25ad08cce8f0bfe..edb1eec46d0fd222f9b30e0e3d62e906c1c9059e:/test/python/tools/test_migration.py diff --git a/test/python/tools/test_migration.py b/test/python/tools/test_migration.py index 79ec8a0e..88c7a4dd 100644 --- a/test/python/tools/test_migration.py +++ b/test/python/tools/test_migration.py @@ -1,3 +1,9 @@ +# SPDX-License-Identifier: GPL-2.0-only +# +# This file is part of Nominatim. (https://nominatim.org) +# +# Copyright (C) 2022 by the Nominatim developer community. +# For a full list of authors see the git log. """ Tests for migration functions """ @@ -8,6 +14,8 @@ from nominatim.tools import migration from nominatim.errors import UsageError import nominatim.version +from mock_legacy_word_table import MockLegacyWordTable + class DummyTokenizer: def update_sql_functions(self, config): @@ -20,6 +28,10 @@ def postprocess_mock(monkeypatch): monkeypatch.setattr(migration.tokenizer_factory, 'get_tokenizer_for_db', lambda *args: DummyTokenizer()) +@pytest.fixture +def legacy_word_table(temp_db_conn): + return MockLegacyWordTable(temp_db_conn) + def test_no_migration_old_versions(temp_db_with_extensions, table_factory, def_config): table_factory('country_name', 'name HSTORE, country_code TEXT') @@ -59,20 +71,6 @@ def test_already_at_version(def_config, property_table): assert migration.migrate(def_config, {}) == 0 -def test_no_migrations_necessary(def_config, temp_db_cursor, property_table, - monkeypatch): - oldversion = [x for x in nominatim.version.NOMINATIM_VERSION] - oldversion[0] -= 1 - property_table.set('database_version', - '{0[0]}.{0[1]}.{0[2]}-{0[3]}'.format(oldversion)) - - oldversion[0] = 0 - monkeypatch.setattr(migration, '_MIGRATION_FUNCTIONS', - [(tuple(oldversion), lambda **attr: True)]) - - assert migration.migrate(def_config, {}) == 0 - - def test_run_single_migration(def_config, temp_db_cursor, property_table, monkeypatch, postprocess_mock): oldversion = [x for x in nominatim.version.NOMINATIM_VERSION] @@ -150,7 +148,7 @@ def test_add_nominatim_property_table_repeat(temp_db_conn, temp_db_cursor, def test_change_housenumber_transliteration(temp_db_conn, temp_db_cursor, - word_table, placex_table): + legacy_word_table, placex_table): placex_table.add(housenumber='3A') temp_db_cursor.execute("""CREATE OR REPLACE FUNCTION make_standard_name(name TEXT)