]> git.openstreetmap.org Git - nominatim.git/commitdiff
port unit tests to new python package layout
authorSarah Hoffmann <lonvia@denofr.de>
Sun, 9 Jun 2024 12:52:20 +0000 (14:52 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Wed, 26 Jun 2024 09:52:47 +0000 (11:52 +0200)
100 files changed:
src/nominatim_api/__init__.py
src/nominatim_api/search/query_analyzer_factory.py
src/nominatim_api/status.py
src/nominatim_api/version.py
src/nominatim_core/paths.py
src/nominatim_core/version.py
src/nominatim_db/cli.py
src/nominatim_db/clicmd/api.py
src/nominatim_db/version.py
test/python/api/conftest.py
test/python/api/fake_adaptor.py
test/python/api/search/test_api_search_query.py
test/python/api/search/test_db_search_builder.py
test/python/api/search/test_icu_query_analyzer.py
test/python/api/search/test_legacy_query_analyzer.py
test/python/api/search/test_query.py
test/python/api/search/test_query_analyzer_factory.py
test/python/api/search/test_search_country.py
test/python/api/search/test_search_near.py
test/python/api/search/test_search_places.py
test/python/api/search/test_search_poi.py
test/python/api/search/test_search_postcode.py
test/python/api/search/test_token_assignment.py
test/python/api/test_api_connection.py
test/python/api/test_api_deletable_v1.py
test/python/api/test_api_details.py
test/python/api/test_api_lookup.py
test/python/api/test_api_polygons_v1.py
test/python/api/test_api_reverse.py
test/python/api/test_api_search.py
test/python/api/test_api_status.py
test/python/api/test_api_types.py
test/python/api/test_export.py
test/python/api/test_helpers_v1.py
test/python/api/test_localization.py
test/python/api/test_result_formatting_v1.py
test/python/api/test_result_formatting_v1_reverse.py
test/python/api/test_results.py
test/python/api/test_server_glue_v1.py
test/python/api/test_warm.py
test/python/cli/conftest.py
test/python/cli/test_cli.py
test/python/cli/test_cmd_admin.py
test/python/cli/test_cmd_api.py
test/python/cli/test_cmd_import.py
test/python/cli/test_cmd_refresh.py
test/python/cli/test_cmd_replication.py
test/python/config/test_config.py
test/python/config/test_config_load_module.py
test/python/conftest.py
test/python/cursor.py
test/python/data/test_country_info.py
test/python/db/test_async_connection.py
test/python/db/test_connection.py
test/python/db/test_properties.py
test/python/db/test_sql_preprocessor.py
test/python/db/test_status.py
test/python/db/test_utils.py
test/python/dummy_tokenizer.py
test/python/indexer/test_indexing.py
test/python/mock_icu_word_table.py
test/python/mock_legacy_word_table.py
test/python/mocks.py
test/python/tokenizer/sanitizers/test_clean_housenumbers.py
test/python/tokenizer/sanitizers/test_clean_postcodes.py
test/python/tokenizer/sanitizers/test_clean_tiger_tags.py
test/python/tokenizer/sanitizers/test_delete_tags.py
test/python/tokenizer/sanitizers/test_sanitizer_config.py
test/python/tokenizer/sanitizers/test_split_name_list.py
test/python/tokenizer/sanitizers/test_strip_brace_terms.py
test/python/tokenizer/sanitizers/test_tag_analyzer_by_language.py
test/python/tokenizer/sanitizers/test_tag_japanese.py
test/python/tokenizer/test_factory.py
test/python/tokenizer/test_icu.py
test/python/tokenizer/test_icu_rule_loader.py
test/python/tokenizer/test_legacy.py
test/python/tokenizer/test_place_sanitizer.py
test/python/tokenizer/token_analysis/test_analysis_postcodes.py
test/python/tokenizer/token_analysis/test_generic.py
test/python/tokenizer/token_analysis/test_generic_mutation.py
test/python/tools/conftest.py
test/python/tools/test_add_osm_data.py
test/python/tools/test_admin.py
test/python/tools/test_check_database.py
test/python/tools/test_database_import.py
test/python/tools/test_exec_utils.py
test/python/tools/test_freeze.py
test/python/tools/test_import_special_phrases.py
test/python/tools/test_migration.py
test/python/tools/test_postcodes.py
test/python/tools/test_refresh.py
test/python/tools/test_refresh_address_levels.py
test/python/tools/test_refresh_create_functions.py
test/python/tools/test_refresh_setup_website.py
test/python/tools/test_replication.py
test/python/tools/test_sp_csv_loader.py
test/python/tools/test_sp_wiki_loader.py
test/python/tools/test_tiger_data.py
test/python/utils/test_centroid.py
test/python/utils/test_json_writer.py

index 02cde0b283e625ce5ecd3087772e5d2c9ca46c36..3ffe0c27fafc7e2b982103071ca8f0dfdc83792e 100644 (file)
@@ -36,3 +36,5 @@ from .results import (SourceTable as SourceTable,
                       SearchResult as SearchResult,
                       SearchResults as SearchResults)
 from .localization import (Locales as Locales)
+
+from .version import NOMINATIM_API_VERSION as __version__
index e10d7a7a99019155e2856e59912f02412c1f7579..06443090ab52eef92368c8da48a7bc3b2f35dc38 100644 (file)
@@ -49,6 +49,6 @@ async def make_query_analyzer(conn: SearchConnection) -> AbstractQueryAnalyzer:
         log().comment(f"No tokenizer named '{name}' available. Database not set up properly.")
         raise RuntimeError('Tokenizer not found')
 
-    module = importlib.import_module(f'nominatim_api.api.search.{name}_tokenizer')
+    module = importlib.import_module(f'nominatim_api.search.{name}_tokenizer')
 
     return cast(AbstractQueryAnalyzer, await module.create_query_analyzer(conn))
index ea88a467d08b0646a0c3a1226309a9284326d2f1..ec6ce5d653fdcd043f5ea27712ee709864076583 100644 (file)
@@ -14,7 +14,7 @@ import dataclasses
 import sqlalchemy as sa
 
 from .connection import SearchConnection
-from .version import NOMINATIM_API_VERSION
+from .version import NOMINATIM_API_VERSION, parse_version
 
 @dataclasses.dataclass
 class StatusResult:
@@ -44,7 +44,7 @@ async def get_status(conn: SearchConnection) -> StatusResult:
 
     # Database version
     try:
-        status.database_version = await conn.get_property('database_version')
+        status.database_version = parse_version(await conn.get_property('database_version'))
     except ValueError:
         pass
 
index d275f4fc314d741daf12bc619305c81950274efc..5d932fc9ec760680e0465a07811be47dc14e0017 100644 (file)
@@ -8,4 +8,6 @@
 Version information for the Nominatim API.
 """
 
+from nominatim_core.version import NominatimVersion, parse_version
+
 NOMINATIM_API_VERSION = '4.4.99'
index 7cdd367803873a9949f32bb5e7949f3898350eca..aa289708ab055c01b405578e62945985b206d030 100644 (file)
@@ -9,7 +9,7 @@ Path settings for extra data used by Nominatim.
 """
 from pathlib import Path
 
-PHPLIB_DIR = None
+PHPLIB_DIR = (Path(__file__) / '..' / '..' / '..' / 'lib-php').resolve()
 SQLLIB_DIR = (Path(__file__) / '..' / '..' / '..' / 'lib-sql').resolve()
 DATA_DIR = (Path(__file__) / '..' / '..' / '..' / 'data').resolve()
 CONFIG_DIR = (Path(__file__) / '..' / '..' / '..' / 'settings').resolve()
index bf35aeb246082f2e7f504dd11e9ceb1b4bc84f0a..64e18b1694b7c5beb6f16ff386ddbca69a71192b 100644 (file)
@@ -7,5 +7,50 @@
 """
 Version information for the Nominatim core package.
 """
+from typing import NamedTuple, Optional
 
 NOMINATIM_CORE_VERSION = '4.4.99'
+
+class NominatimVersion(NamedTuple):
+    """ Version information for Nominatim. We follow semantic versioning.
+
+        Major, minor and patch_level refer to the last released version.
+        The database patch level tracks important changes between releases
+        and must always be increased when there is a change to the database or code
+        that requires a migration.
+
+        When adding a migration on the development branch, raise the patch level
+        to 99 to make sure that the migration is applied when updating from a
+        patch release to the next minor version. Patch releases usually shouldn't
+        have migrations in them. When they are needed, then make sure that the
+        migration can be reapplied and set the migration version to the appropriate
+        patch level when cherry-picking the commit with the migration.
+    """
+
+    major: int
+    minor: int
+    patch_level: int
+    db_patch_level: Optional[int]
+
+    def __str__(self) -> str:
+        if self.db_patch_level is None:
+            return f"{self.major}.{self.minor}.{self.patch_level}"
+
+        return f"{self.major}.{self.minor}.{self.patch_level}-{self.db_patch_level}"
+
+    def release_version(self) -> str:
+        """ Return the release version in semantic versioning format.
+
+            The release version does not include the database patch version.
+        """
+        return f"{self.major}.{self.minor}.{self.patch_level}"
+
+
+def parse_version(version: str) -> NominatimVersion:
+    """ Parse a version string into a version consisting of a tuple of
+        four ints: major, minor, patch level, database patch level
+
+        This is the reverse operation of `version_str()`.
+    """
+    parts = version.split('.')
+    return NominatimVersion(*[int(x) for x in parts[:2] + parts[2].split('-')])
index 7b55566c335ebd233d22af73185e877111f87d98..746fbe3297c4ad91f0152ec1836d6ef1dab1b54a 100644 (file)
@@ -180,7 +180,7 @@ class AdminServe:
             else:
                 port = 8088
 
-            server_module = importlib.import_module(f'nominatim_db.server.{args.engine}.server')
+            server_module = importlib.import_module(f'nominatim_api.server.{args.engine}.server')
 
             app = server_module.get_application(args.project_dir)
             uvicorn.run(app, host=host, port=port)
index 7d9569e3cb506adb113b5126bbd1cc1000ebd525..0f0d1ebd987a27f6a0bb445147978ceb95e2d1a5 100644 (file)
@@ -7,7 +7,7 @@
 """
 Subcommand definitions for API calls from the command line.
 """
-from typing import Dict, Any
+from typing import Dict, Any, Optional
 import argparse
 import logging
 import json
index ca383c859c2ad99b5067779d7741939001823ad1..82ae17e9ee4e0ba59c0617e0616b2bafbf391bbe 100644 (file)
@@ -7,38 +7,9 @@
 """
 Version information for Nominatim.
 """
-from typing import Optional, NamedTuple
+from typing import Optional
 
-class NominatimVersion(NamedTuple):
-    """ Version information for Nominatim. We follow semantic versioning.
-
-        Major, minor and patch_level refer to the last released version.
-        The database patch level tracks important changes between releases
-        and must always be increased when there is a change to the database or code
-        that requires a migration.
-
-        When adding a migration on the development branch, raise the patch level
-        to 99 to make sure that the migration is applied when updating from a
-        patch release to the next minor version. Patch releases usually shouldn't
-        have migrations in them. When they are needed, then make sure that the
-        migration can be reapplied and set the migration version to the appropriate
-        patch level when cherry-picking the commit with the migration.
-    """
-
-    major: int
-    minor: int
-    patch_level: int
-    db_patch_level: int
-
-    def __str__(self) -> str:
-        return f"{self.major}.{self.minor}.{self.patch_level}-{self.db_patch_level}"
-
-    def release_version(self) -> str:
-        """ Return the release version in semantic versioning format.
-
-            The release version does not include the database patch version.
-        """
-        return f"{self.major}.{self.minor}.{self.patch_level}"
+from nominatim_core.version import NominatimVersion, parse_version
 
 NOMINATIM_VERSION = NominatimVersion(4, 4, 99, 1)
 
@@ -50,13 +21,3 @@ POSTGIS_REQUIRED_VERSION = (2, 2)
 # cmake/tool-installed.tmpl is used to build the binary 'nominatim'. Inside
 # there is a call to set the variable value below.
 GIT_COMMIT_HASH : Optional[str] = None
-
-
-def parse_version(version: str) -> NominatimVersion:
-    """ Parse a version string into a version consisting of a tuple of
-        four ints: major, minor, patch level, database patch level
-
-        This is the reverse operation of `version_str()`.
-    """
-    parts = version.split('.')
-    return NominatimVersion(*[int(x) for x in parts[:2] + parts[2].split('-')])
index 05eaddf5fc0f182cfc501504e48b8865fdb9af95..08b7422c9c38bc8d0a8dc31cd3fb8f1547460ce3 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Helper fixtures for API call tests.
@@ -14,11 +14,11 @@ import datetime as dt
 
 import sqlalchemy as sa
 
-import nominatim.api as napi
-from nominatim.db.sql_preprocessor import SQLPreprocessor
-from nominatim.api.search.query_analyzer_factory import make_query_analyzer
-from nominatim.tools import convert_sqlite
-import nominatim.api.logging as loglib
+import nominatim_api as napi
+from nominatim_core.db.sql_preprocessor import SQLPreprocessor
+from nominatim_api.search.query_analyzer_factory import make_query_analyzer
+from nominatim_db.tools import convert_sqlite
+import nominatim_api.logging as loglib
 
 class APITester:
 
index d886d34e20f89057fdcca2b82e263c6e7e1c65fd..50fbbbbea7cf8f702984e2a1837017a93855e68e 100644 (file)
@@ -2,15 +2,15 @@
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Provides dummy implementations of ASGIAdaptor for testing.
 """
 from collections import namedtuple
 
-import nominatim.api.v1.server_glue as glue
-from nominatim.config import Configuration
+import nominatim_api.v1.server_glue as glue
+from nominatim_core.config import Configuration
 
 class FakeError(BaseException):
 
index bfdceb4165fc984451e6ca8266a15554cc0cb2b8..7154ae084317845075cb3efe57f40cca7f099f94 100644 (file)
@@ -2,14 +2,14 @@
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for tokenized query data structures.
 """
 import pytest
 
-from nominatim.api.search import query
+from nominatim_api.search import query
 
 class MyToken(query.Token):
 
index 68f71298c6b64f10a846796562bd658fdfdf7cc3..5d984014d18113e15f6198d246db64e5b000edad 100644 (file)
@@ -9,11 +9,11 @@ Tests for creating abstract searches from token assignments.
 """
 import pytest
 
-from nominatim.api.search.query import Token, TokenRange, BreakType, PhraseType, TokenType, QueryStruct, Phrase
-from nominatim.api.search.db_search_builder import SearchBuilder
-from nominatim.api.search.token_assignment import TokenAssignment
-from nominatim.api.types import SearchDetails
-import nominatim.api.search.db_searches as dbs
+from nominatim_api.search.query import Token, TokenRange, BreakType, PhraseType, TokenType, QueryStruct, Phrase
+from nominatim_api.search.db_search_builder import SearchBuilder
+from nominatim_api.search.token_assignment import TokenAssignment
+from nominatim_api.types import SearchDetails
+import nominatim_api.search.db_searches as dbs
 
 class MyToken(Token):
     def get_category(self):
index 2ec3a7fecc85715536241b9b7d6c25c056427cd2..8e5480fcfb9ce49693fea8dc23e2f5bd5e43b476 100644 (file)
@@ -2,7 +2,7 @@
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for query analyzer for ICU tokenizer.
@@ -12,10 +12,10 @@ from pathlib import Path
 import pytest
 import pytest_asyncio
 
-from nominatim.api import NominatimAPIAsync
-from nominatim.api.search.query import Phrase, PhraseType, TokenType, BreakType
-import nominatim.api.search.icu_tokenizer as tok
-from nominatim.api.logging import set_log_output, get_and_disable
+from nominatim_api import NominatimAPIAsync
+from nominatim_api.search.query import Phrase, PhraseType, TokenType, BreakType
+import nominatim_api.search.icu_tokenizer as tok
+from nominatim_api.logging import set_log_output, get_and_disable
 
 async def add_word(conn, word_id, word_token, wtype, word, info = None):
     t = conn.t.meta.tables['word']
index 507afaeceee8023eade86f5c2f1db7d382d44842..92de8706f149619b03a6423069751cdfe3f8b577 100644 (file)
@@ -2,7 +2,7 @@
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for query analyzer for legacy tokenizer.
@@ -12,10 +12,10 @@ from pathlib import Path
 import pytest
 import pytest_asyncio
 
-from nominatim.api import NominatimAPIAsync
-from nominatim.api.search.query import Phrase, PhraseType, TokenType, BreakType
-import nominatim.api.search.legacy_tokenizer as tok
-from nominatim.api.logging import set_log_output, get_and_disable
+from nominatim_api import NominatimAPIAsync
+from nominatim_api.search.query import Phrase, PhraseType, TokenType, BreakType
+import nominatim_api.search.legacy_tokenizer as tok
+from nominatim_api.logging import set_log_output, get_and_disable
 
 
 async def add_word(conn, word_id, word_token, word, count):
index a4b328249b0a088d1bfd6059c3cdd867d478269a..c39094f0e8ac03c78d79828681c62993d4c0194c 100644 (file)
@@ -1,16 +1,15 @@
-
 # SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Test data types for search queries.
 """
 import pytest
 
-import nominatim.api.search.query as nq
+import nominatim_api.search.query as nq
 
 def test_token_range_equal():
     assert nq.TokenRange(2, 3) == nq.TokenRange(2, 3)
index 2d113e3e99ee5a6a00d3176ea2c5fa4605d12171..9545a88ff21ee03d1456205a3699841e649f5de2 100644 (file)
@@ -2,7 +2,7 @@
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for query analyzer creation.
@@ -11,9 +11,9 @@ from pathlib import Path
 
 import pytest
 
-from nominatim.api import NominatimAPIAsync
-from nominatim.api.search.query_analyzer_factory import make_query_analyzer
-from nominatim.api.search.icu_tokenizer import ICUQueryAnalyzer
+from nominatim_api import NominatimAPIAsync
+from nominatim_api.search.query_analyzer_factory import make_query_analyzer
+from nominatim_api.search.icu_tokenizer import ICUQueryAnalyzer
 
 @pytest.mark.asyncio
 async def test_import_icu_tokenizer(table_factory):
index dc87d313a0ff98b1e6b776600bc21889bd0f7c27..2109ecb0bb7fb5ff4cd54ed08e913e446c476a95 100644 (file)
@@ -2,17 +2,17 @@
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for running the country searcher.
 """
 import pytest
 
-import nominatim.api as napi
-from nominatim.api.types import SearchDetails
-from nominatim.api.search.db_searches import CountrySearch
-from nominatim.api.search.db_search_fields import WeightedStrings
+import nominatim_api as napi
+from nominatim_api.types import SearchDetails
+from nominatim_api.search.db_searches import CountrySearch
+from nominatim_api.search.db_search_fields import WeightedStrings
 
 
 def run_search(apiobj, frontend, global_penalty, ccodes,
index 5b60dd51d59c9626906591591d1b326d73c3ddb1..43098ddd20e5af93ca3c5b4f76235f2d565c58fa 100644 (file)
@@ -2,19 +2,19 @@
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for running the near searcher.
 """
 import pytest
 
-import nominatim.api as napi
-from nominatim.api.types import SearchDetails
-from nominatim.api.search.db_searches import NearSearch, PlaceSearch
-from nominatim.api.search.db_search_fields import WeightedStrings, WeightedCategories,\
+import nominatim_api as napi
+from nominatim_api.types import SearchDetails
+from nominatim_api.search.db_searches import NearSearch, PlaceSearch
+from nominatim_api.search.db_search_fields import WeightedStrings, WeightedCategories,\
                                                   FieldLookup, FieldRanking, RankedTokens
-from nominatim.api.search.db_search_lookups import LookupAll
+from nominatim_api.search.db_search_lookups import LookupAll
 
 
 def run_search(apiobj, frontend, global_penalty, cat, cat_penalty=None, ccodes=[],
index 5e06776d23287bd89ba87b3076b4b16685de28e5..c6ff16b83e8a81a62c2107cd7868b0aeab5c9f00 100644 (file)
@@ -2,7 +2,7 @@
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for running the generic place searcher.
@@ -11,12 +11,12 @@ import json
 
 import pytest
 
-import nominatim.api as napi
-from nominatim.api.types import SearchDetails
-from nominatim.api.search.db_searches import PlaceSearch
-from nominatim.api.search.db_search_fields import WeightedStrings, WeightedCategories,\
+import nominatim_api as napi
+from nominatim_api.types import SearchDetails
+from nominatim_api.search.db_searches import PlaceSearch
+from nominatim_api.search.db_search_fields import WeightedStrings, WeightedCategories,\
                                                   FieldLookup, FieldRanking, RankedTokens
-from nominatim.api.search.db_search_lookups import LookupAll, LookupAny, Restrict
+from nominatim_api.search.db_search_lookups import LookupAll, LookupAny, Restrict
 
 APIOPTIONS = ['search']
 
index a0b578baffbc07c2b03b7b06dafc4ca5c7e3b007..d4319a57db2a349897da06a8ed63a59eee837ad5 100644 (file)
@@ -2,17 +2,17 @@
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for running the POI searcher.
 """
 import pytest
 
-import nominatim.api as napi
-from nominatim.api.types import SearchDetails
-from nominatim.api.search.db_searches import PoiSearch
-from nominatim.api.search.db_search_fields import WeightedStrings, WeightedCategories
+import nominatim_api as napi
+from nominatim_api.types import SearchDetails
+from nominatim_api.search.db_searches import PoiSearch
+from nominatim_api.search.db_search_fields import WeightedStrings, WeightedCategories
 
 
 def run_search(apiobj, frontend, global_penalty, poitypes, poi_penalties=None,
index 6976b6a592ac5921fbb283c84c411065500793bb..633e07bcf8574ea1caaad73b277d0c3978a839ed 100644 (file)
@@ -2,17 +2,17 @@
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for running the postcode searcher.
 """
 import pytest
 
-import nominatim.api as napi
-from nominatim.api.types import SearchDetails
-from nominatim.api.search.db_searches import PostcodeSearch
-from nominatim.api.search.db_search_fields import WeightedStrings, FieldLookup, \
+import nominatim_api as napi
+from nominatim_api.types import SearchDetails
+from nominatim_api.search.db_searches import PostcodeSearch
+from nominatim_api.search.db_search_fields import WeightedStrings, FieldLookup, \
                                                   FieldRanking, RankedTokens
 
 def run_search(apiobj, frontend, global_penalty, pcs, pc_penalties=None,
index cde8495d0bb2ce557cc9d6ecd2de24721d454f3b..884d29328380323d08749964046d951f8c37f999 100644 (file)
@@ -2,15 +2,15 @@
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Test for creation of token assignments from tokenized queries.
 """
 import pytest
 
-from nominatim.api.search.query import QueryStruct, Phrase, PhraseType, BreakType, TokenType, TokenRange, Token
-from nominatim.api.search.token_assignment import yield_token_assignments, TokenAssignment, PENALTY_TOKENCHANGE
+from nominatim_api.search.query import QueryStruct, Phrase, PhraseType, BreakType, TokenType, TokenRange, Token
+from nominatim_api.search.token_assignment import yield_token_assignments, TokenAssignment, PENALTY_TOKENCHANGE
 
 class MyToken(Token):
     def get_category(self):
index 5609cb03fd9ccac693424b9ec3d2add2db8c5ad5..3c4fc61b2656938ff2c2f234cf6aeed2b20b6ed8 100644 (file)
@@ -2,7 +2,7 @@
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for enhanced connection class for API functions.
@@ -13,7 +13,7 @@ import pytest_asyncio
 
 import sqlalchemy as sa
 
-from nominatim.api import NominatimAPIAsync
+from nominatim_api import NominatimAPIAsync
 
 @pytest_asyncio.fixture
 async def apiobj(temp_db):
index 4c5d96b633053ffe7ef3ce45aeebc8a024bae521..1b8dc34d3b1b962f13c30f930531529e21bdd6d4 100644 (file)
@@ -2,7 +2,7 @@
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for the deletable v1 API call.
@@ -17,8 +17,8 @@ import psycopg2.extras
 
 from fake_adaptor import FakeAdaptor, FakeError, FakeResponse
 
-import nominatim.api.v1.server_glue as glue
-import nominatim.api as napi
+import nominatim_api.v1.server_glue as glue
+import nominatim_api as napi
 
 @pytest_asyncio.fixture
 async def api():
index 596876d4503dac42d94ab8a06d4cd3f74154a41c..7f405728b284536ce6d221c857b0bbc27c46bed0 100644 (file)
@@ -2,7 +2,7 @@
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for details API call.
@@ -11,7 +11,7 @@ import datetime as dt
 
 import pytest
 
-import nominatim.api as napi
+import nominatim_api as napi
 
 @pytest.mark.parametrize('idobj', (napi.PlaceID(332), napi.OsmID('W', 4),
                                    napi.OsmID('W', 4, 'highway')))
index 48b0777667c8199934e4cd7994e82feffde54570..4281cd6c924cfa2dd0b75de50439ace9a8a32190 100644 (file)
@@ -2,7 +2,7 @@
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for lookup API call.
@@ -11,7 +11,7 @@ import json
 
 import pytest
 
-import nominatim.api as napi
+import nominatim_api as napi
 
 def test_lookup_empty_list(apiobj, frontend):
     api = frontend(apiobj, options={'details'})
index 6842f791f7ac8160ac959faa3efa27db3e10525b..bf51cd17ff2864c7e37eb60b6058286a10e82cfb 100644 (file)
@@ -2,7 +2,7 @@
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for the deletable v1 API call.
@@ -18,8 +18,8 @@ import psycopg2.extras
 
 from fake_adaptor import FakeAdaptor, FakeError, FakeResponse
 
-import nominatim.api.v1.server_glue as glue
-import nominatim.api as napi
+import nominatim_api.v1.server_glue as glue
+import nominatim_api as napi
 
 @pytest_asyncio.fixture
 async def api():
index 8f8b2dba246bc4e676bb520208eb4451e72f22e9..ff7f402b72f000d9364d716752b992a5e7514b3d 100644 (file)
@@ -2,7 +2,7 @@
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for reverse API call.
@@ -14,7 +14,7 @@ import json
 
 import pytest
 
-import nominatim.api as napi
+import nominatim_api as napi
 
 API_OPTIONS = {'reverse'}
 
index 25f63bb8490a6964fc71ac94efa6aec96fcb28ff..54138e24442056a4dab6027d95bcacb834101414 100644 (file)
@@ -2,7 +2,7 @@
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for search API calls.
@@ -16,8 +16,8 @@ import pytest
 
 import sqlalchemy as sa
 
-import nominatim.api as napi
-import nominatim.api.logging as loglib
+import nominatim_api as napi
+import nominatim_api.logging as loglib
 
 API_OPTIONS = {'search'}
 
index 2acde2ecb49ee23f3f2c1722112f7dd1e43d0224..2b211611a71dda84607ae2b0e9951a3c5a0cd902 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for the status API call.
@@ -11,8 +11,9 @@ from pathlib import Path
 import datetime as dt
 import pytest
 
-from nominatim.version import NOMINATIM_VERSION, NominatimVersion
-import nominatim.api as napi
+from nominatim_db.version import NominatimVersion
+from nominatim_api.version import NOMINATIM_API_VERSION
+import nominatim_api as napi
 
 def test_status_no_extra_info(apiobj, frontend):
     api = frontend(apiobj)
@@ -20,7 +21,7 @@ def test_status_no_extra_info(apiobj, frontend):
 
     assert result.status == 0
     assert result.message == 'OK'
-    assert result.software_version == NOMINATIM_VERSION
+    assert result.software_version == NOMINATIM_API_VERSION
     assert result.database_version is None
     assert result.data_updated is None
 
@@ -37,7 +38,7 @@ def test_status_full(apiobj, frontend):
 
     assert result.status == 0
     assert result.message == 'OK'
-    assert result.software_version == NOMINATIM_VERSION
+    assert result.software_version == NOMINATIM_API_VERSION
     assert result.database_version == NominatimVersion(99, 5, 4, 2)
     assert result.data_updated == import_date
 
@@ -51,6 +52,6 @@ def test_status_database_not_found(monkeypatch):
 
     assert result.status == 700
     assert result.message == 'Database connection failed'
-    assert result.software_version == NOMINATIM_VERSION
+    assert result.software_version == NOMINATIM_API_VERSION
     assert result.database_version is None
     assert result.data_updated is None
index 6a095bcb66725d7339e00559524bdc9979920a0e..2faba33dac7f4191a2df2a52f258370b836c5b77 100644 (file)
@@ -2,15 +2,15 @@
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for loading of parameter dataclasses.
 """
 import pytest
 
-from nominatim.errors import UsageError
-import nominatim.api.types as typ
+from nominatim_core.errors import UsageError
+import nominatim_api.types as typ
 
 def test_no_params_defaults():
     params = typ.LookupDetails.from_kwargs({})
index 0fd527480f951c36521542e4d089e81cabe8b21e..1d9bf90f9f4c35fb8530f0e31c46f4e2f28f431a 100644 (file)
@@ -2,22 +2,22 @@
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for export CLI function.
 """
 import pytest
 
-import nominatim.cli
+import nominatim_db.cli
 
 @pytest.fixture
 def run_export(tmp_path, capsys):
     def _exec(args):
-        assert 0 == nominatim.cli.nominatim(module_dir='MODULE NOT AVAILABLE',
-                                            osm2pgsql_path='OSM2PGSQL NOT AVAILABLE',
-                                            cli_args=['export', '--project-dir', str(tmp_path)]
-                                                     + args)
+        assert 0 == nominatim_db.cli.nominatim(module_dir='MODULE NOT AVAILABLE',
+                                               osm2pgsql_path='OSM2PGSQL NOT AVAILABLE',
+                                               cli_args=['export', '--project-dir', str(tmp_path)]
+                                                        + args)
         return capsys.readouterr().out.split('\r\n')
 
     return _exec
index e4862b0d807bb4569ff2161807987b76265c557f..3a6a9a0b05c4798c6eb4e3b498972e75b4847ad4 100644 (file)
@@ -2,14 +2,14 @@
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for the helper functions for v1 API.
 """
 import pytest
 
-import nominatim.api.v1.helpers as helper
+import nominatim_api.v1.helpers as helper
 
 @pytest.mark.parametrize('inp', ['',
                                  'abc',
index b704e5a9d88541dff785ed0a1331bb42bb543a7b..21fa72c81c9af0cb7326460be11f6461f3722d7c 100644 (file)
@@ -2,14 +2,14 @@
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Test functions for adapting results to the user's locale.
 """
 import pytest
 
-from nominatim.api import Locales
+from nominatim_api import Locales
 
 def test_display_name_empty_names():
     l = Locales(['en', 'de'])
index 0ff834a4549332ad589f39d958af17df00970649..6ac1bb6d037766808c337ff761eb738b5d21f62b 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for formatting results for the V1 API.
@@ -15,9 +15,8 @@ import json
 
 import pytest
 
-import nominatim.api.v1 as api_impl
-import nominatim.api as napi
-from nominatim.version import NOMINATIM_VERSION
+import nominatim_api.v1 as api_impl
+import nominatim_api as napi
 
 STATUS_FORMATS = {'text', 'json'}
 
@@ -49,7 +48,8 @@ def test_status_format_json_minimal():
 
     result = api_impl.format_result(status, 'json', {})
 
-    assert result == '{"status":700,"message":"Bad format.","software_version":"%s"}' % (NOMINATIM_VERSION, )
+    assert result == \
+           f'{{"status":700,"message":"Bad format.","software_version":"{napi.__version__}"}}'
 
 
 def test_status_format_json_full():
@@ -59,7 +59,8 @@ def test_status_format_json_full():
 
     result = api_impl.format_result(status, 'json', {})
 
-    assert result == '{"status":0,"message":"OK","data_updated":"2010-02-07T20:20:03+00:00","software_version":"%s","database_version":"5.6"}' % (NOMINATIM_VERSION, )
+    assert result == \
+           f'{{"status":0,"message":"OK","data_updated":"2010-02-07T20:20:03+00:00","software_version":"{napi.__version__}","database_version":"5.6"}}'
 
 
 # DetailedResult
index d9d43953c3ed13607a05b30cac8254e53bc8586f..1248fa9e2d77e48598fbab96c17745db19ac2906 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for formatting reverse results for the V1 API.
@@ -15,8 +15,8 @@ import xml.etree.ElementTree as ET
 
 import pytest
 
-import nominatim.api.v1 as api_impl
-import nominatim.api as napi
+import nominatim_api.v1 as api_impl
+import nominatim_api as napi
 
 FORMATS = ['json', 'jsonv2', 'geojson', 'geocodejson', 'xml']
 
index 54a5454945860618a61ebf01317871b9db90cc4d..f0bfa163cbcb8b41cdf3f90f8fd0d9f68f8809e6 100644 (file)
@@ -2,7 +2,7 @@
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for result datatype helper functions.
@@ -15,8 +15,8 @@ import pytest_asyncio
 import sqlalchemy as sa
 
 
-from nominatim.api import SourceTable, DetailedResult, Point
-import nominatim.api.results as nresults
+from nominatim_api import SourceTable, DetailedResult, Point
+import nominatim_api.results as nresults
 
 def mkpoint(x, y):
     return hexlify(struct.pack("=biidd", 1, 0x20000001, 4326, x, y)).decode('utf-8')
index 5a7430f48db2b57c668c06ef27f88b80edb704ab..5716f2459e2b09bd61222924dbf966a453312417 100644 (file)
@@ -2,7 +2,7 @@
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for the Python web frameworks adaptor, v1 API.
@@ -15,9 +15,9 @@ import pytest
 
 from fake_adaptor import FakeAdaptor, FakeError, FakeResponse
 
-import nominatim.api.v1.server_glue as glue
-import nominatim.api as napi
-import nominatim.api.logging as loglib
+import nominatim_api.v1.server_glue as glue
+import nominatim_api as napi
+import nominatim_api.logging as loglib
 
 
 # ASGIAdaptor.get_int/bool()
index af48732ac3d14af68fe6645c79ef5edd0d284cff..304943f1be27347edef3c189f6a916f1b42d3edd 100644 (file)
@@ -2,14 +2,14 @@
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for warm-up CLI function.
 """
 import pytest
 
-import nominatim.cli
+import nominatim_db.cli
 
 @pytest.fixture(autouse=True)
 def setup_database_with_context(apiobj, table_factory):
@@ -27,7 +27,7 @@ def setup_database_with_context(apiobj, table_factory):
 
 @pytest.mark.parametrize('args', [['--search-only'], ['--reverse-only']])
 def test_warm_all(tmp_path, args):
-    assert 0 == nominatim.cli.nominatim(module_dir='MODULE NOT AVAILABLE',
-                                        osm2pgsql_path='OSM2PGSQL NOT AVAILABLE',
-                                        cli_args=['admin', '--project-dir', str(tmp_path),
-                                                  '--warm'] + args)
+    assert 0 == nominatim_db.cli.nominatim(module_dir='MODULE NOT AVAILABLE',
+                                           osm2pgsql_path='OSM2PGSQL NOT AVAILABLE',
+                                           cli_args=['admin', '--project-dir', str(tmp_path),
+                                                     '--warm'] + args)
index 28aba597e7de38d324ebadaa1e6ef67e62b84b82..1e3ca8abbe8b02a66361b26e7e640345cdb0be9b 100644 (file)
@@ -1,12 +1,12 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 import pytest
 
-import nominatim.cli
+import nominatim_db.cli
 
 class MockParamCapture:
     """ Mock that records the parameters with which a function was called
@@ -51,9 +51,9 @@ def cli_call():
         Returns a function that can be called with the desired CLI arguments.
     """
     def _call_nominatim(*args):
-        return nominatim.cli.nominatim(module_dir='MODULE NOT AVAILABLE',
-                                       osm2pgsql_path='OSM2PGSQL NOT AVAILABLE',
-                                       cli_args=args)
+        return nominatim_db.cli.nominatim(module_dir='MODULE NOT AVAILABLE',
+                                          osm2pgsql_path='OSM2PGSQL NOT AVAILABLE',
+                                          cli_args=args)
 
     return _call_nominatim
 
@@ -72,9 +72,9 @@ def mock_func_factory(monkeypatch):
 @pytest.fixture
 def cli_tokenizer_mock(monkeypatch):
     tok = DummyTokenizer()
-    monkeypatch.setattr(nominatim.tokenizer.factory, 'get_tokenizer_for_db',
+    monkeypatch.setattr(nominatim_db.tokenizer.factory, 'get_tokenizer_for_db',
                         lambda *args: tok)
-    monkeypatch.setattr(nominatim.tokenizer.factory, 'create_tokenizer',
+    monkeypatch.setattr(nominatim_db.tokenizer.factory, 'create_tokenizer',
                         lambda *args: tok)
 
     return tok
index 12a58d075b9933244e1b7bd33f757d1b568be9bf..688afb7c463addea7c42c6259c2b4c0deefed273 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for command line interface wrapper.
@@ -14,9 +14,9 @@ the actual functions.
 import importlib
 import pytest
 
-import nominatim.indexer.indexer
-import nominatim.tools.add_osm_data
-import nominatim.tools.freeze
+import nominatim_db.indexer.indexer
+import nominatim_db.tools.add_osm_data
+import nominatim_db.tools.freeze
 
 
 def test_cli_help(cli_call, capsys):
@@ -37,7 +37,7 @@ def test_cli_version(cli_call, capsys):
 
 @pytest.mark.parametrize("name,oid", [('file', 'foo.osm'), ('diff', 'foo.osc')])
 def test_cli_add_data_file_command(cli_call, mock_func_factory, name, oid):
-    mock_run_legacy = mock_func_factory(nominatim.tools.add_osm_data, 'add_data_from_file')
+    mock_run_legacy = mock_func_factory(nominatim_db.tools.add_osm_data, 'add_data_from_file')
     assert cli_call('add-data', '--' + name, str(oid)) == 0
 
     assert mock_run_legacy.called == 1
@@ -45,7 +45,7 @@ def test_cli_add_data_file_command(cli_call, mock_func_factory, name, oid):
 
 @pytest.mark.parametrize("name,oid", [('node', 12), ('way', 8), ('relation', 32)])
 def test_cli_add_data_object_command(cli_call, mock_func_factory, name, oid):
-    mock_run_legacy = mock_func_factory(nominatim.tools.add_osm_data, 'add_osm_object')
+    mock_run_legacy = mock_func_factory(nominatim_db.tools.add_osm_data, 'add_osm_object')
     assert cli_call('add-data', '--' + name, str(oid)) == 0
 
     assert mock_run_legacy.called == 1
@@ -53,7 +53,7 @@ def test_cli_add_data_object_command(cli_call, mock_func_factory, name, oid):
 
 
 def test_cli_add_data_tiger_data(cli_call, cli_tokenizer_mock, mock_func_factory):
-    mock = mock_func_factory(nominatim.tools.tiger_data, 'add_tiger_data')
+    mock = mock_func_factory(nominatim_db.tools.tiger_data, 'add_tiger_data')
 
     assert cli_call('add-data', '--tiger-data', 'somewhere') == 0
 
@@ -61,7 +61,7 @@ def test_cli_add_data_tiger_data(cli_call, cli_tokenizer_mock, mock_func_factory
 
 
 def test_cli_serve_php(cli_call, mock_func_factory):
-    func = mock_func_factory(nominatim.cli, 'run_php_server')
+    func = mock_func_factory(nominatim_db.cli, 'run_php_server')
 
     cli_call('serve', '--engine', 'php') == 0
 
@@ -110,8 +110,8 @@ class TestCliWithDb:
 
 
     def test_freeze_command(self, mock_func_factory):
-        mock_drop = mock_func_factory(nominatim.tools.freeze, 'drop_update_tables')
-        mock_flatnode = mock_func_factory(nominatim.tools.freeze, 'drop_flatnode_file')
+        mock_drop = mock_func_factory(nominatim_db.tools.freeze, 'drop_update_tables')
+        mock_flatnode = mock_func_factory(nominatim_db.tools.freeze, 'drop_flatnode_file')
 
         assert self.call_nominatim('freeze') == 0
 
@@ -127,9 +127,9 @@ class TestCliWithDb:
     def test_index_command(self, mock_func_factory, table_factory,
                            params, do_bnds, do_ranks):
         table_factory('import_status', 'indexed bool')
-        bnd_mock = mock_func_factory(nominatim.indexer.indexer.Indexer, 'index_boundaries')
-        rank_mock = mock_func_factory(nominatim.indexer.indexer.Indexer, 'index_by_rank')
-        postcode_mock = mock_func_factory(nominatim.indexer.indexer.Indexer, 'index_postcodes')
+        bnd_mock = mock_func_factory(nominatim_db.indexer.indexer.Indexer, 'index_boundaries')
+        rank_mock = mock_func_factory(nominatim_db.indexer.indexer.Indexer, 'index_by_rank')
+        postcode_mock = mock_func_factory(nominatim_db.indexer.indexer.Indexer, 'index_postcodes')
 
         assert self.call_nominatim('index', *params) == 0
 
@@ -139,7 +139,7 @@ class TestCliWithDb:
 
 
     def test_special_phrases_wiki_command(self, mock_func_factory):
-        func = mock_func_factory(nominatim.clicmd.special_phrases.SPImporter, 'import_phrases')
+        func = mock_func_factory(nominatim_db.clicmd.special_phrases.SPImporter, 'import_phrases')
 
         self.call_nominatim('special-phrases', '--import-from-wiki', '--no-replace')
 
@@ -147,7 +147,7 @@ class TestCliWithDb:
 
 
     def test_special_phrases_csv_command(self, src_dir, mock_func_factory):
-        func = mock_func_factory(nominatim.clicmd.special_phrases.SPImporter, 'import_phrases')
+        func = mock_func_factory(nominatim_db.clicmd.special_phrases.SPImporter, 'import_phrases')
         testdata = src_dir / 'test' / 'testdb'
         csv_path = str((testdata / 'full_en_phrases_test.csv').resolve())
 
index cc80c19aac3735f5250224a87ef4b64c926fceef..7b0b9cd466fd6cfa27dd947af8752312f5656f4f 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Test for the command line interface wrapper admin subcommand.
@@ -13,34 +13,34 @@ the actual functions.
 """
 import pytest
 
-import nominatim.tools.admin
-import nominatim.tools.check_database
-import nominatim.tools.migration
-import nominatim.clicmd.admin
+import nominatim_db.tools.admin
+import nominatim_db.tools.check_database
+import nominatim_db.tools.migration
+import nominatim_db.clicmd.admin
 
 
 def test_admin_command_check_database(cli_call, mock_func_factory):
-    mock = mock_func_factory(nominatim.tools.check_database, 'check_database')
+    mock = mock_func_factory(nominatim_db.tools.check_database, 'check_database')
 
     assert cli_call('admin', '--check-database') == 0
     assert mock.called == 1
 
 
 def test_admin_migrate(cli_call, mock_func_factory):
-    mock = mock_func_factory(nominatim.tools.migration, 'migrate')
+    mock = mock_func_factory(nominatim_db.tools.migration, 'migrate')
 
     assert cli_call('admin', '--migrate') == 0
     assert mock.called == 1
 
 
 def test_admin_clean_deleted_relations(cli_call, mock_func_factory):
-    mock = mock_func_factory(nominatim.tools.admin, 'clean_deleted_relations')
+    mock = mock_func_factory(nominatim_db.tools.admin, 'clean_deleted_relations')
 
     assert cli_call('admin', '--clean-deleted', '1 month') == 0
     assert mock.called == 1
 
 def test_admin_clean_deleted_relations_no_age(cli_call, mock_func_factory):
-    mock = mock_func_factory(nominatim.tools.admin, 'clean_deleted_relations')
+    mock = mock_func_factory(nominatim_db.tools.admin, 'clean_deleted_relations')
 
     assert cli_call('admin', '--clean-deleted') == 1
 
@@ -54,7 +54,7 @@ class TestCliAdminWithDb:
 
     @pytest.mark.parametrize("func, params", [('analyse_indexing', ('--analyse-indexing', ))])
     def test_analyse_indexing(self, mock_func_factory, func, params):
-        mock = mock_func_factory(nominatim.tools.admin, func)
+        mock = mock_func_factory(nominatim_db.tools.admin, func)
 
         assert self.call_nominatim('admin', *params) == 0
         assert mock.called == 1
index ca160a359e5cb97b7f1de5d8ec96afea676f98e4..811eadfe4112adf513ff594f43b93d57694cc92a 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for API access commands of command-line interface wrapper.
@@ -10,8 +10,8 @@ Tests for API access commands of command-line interface wrapper.
 import json
 import pytest
 
-import nominatim.clicmd.api
-import nominatim.api as napi
+import nominatim_db.clicmd.api
+import nominatim_api as napi
 
 
 class TestCliStatusCall:
index d098e27e24cdb73125aef3d82ba29cd6cbef98c6..9c2400c5c2e65e561f816719292a6d712ff4cfd9 100644 (file)
@@ -1,20 +1,20 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-2.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for import command of the command-line interface wrapper.
 """
 import pytest
 
-import nominatim.tools.database_import
-import nominatim.data.country_info
-import nominatim.tools.refresh
-import nominatim.tools.postcodes
-import nominatim.indexer.indexer
-import nominatim.db.properties
+import nominatim_db.tools.database_import
+import nominatim_db.data.country_info
+import nominatim_db.tools.refresh
+import nominatim_db.tools.postcodes
+import nominatim_db.indexer.indexer
+import nominatim_core.db.properties
 
 
 class TestCliImportWithDb:
@@ -36,31 +36,31 @@ class TestCliImportWithDb:
     @pytest.mark.parametrize('with_updates', [True, False])
     def test_import_full(self, mock_func_factory, with_updates, place_table, property_table):
         mocks = [
-            mock_func_factory(nominatim.tools.database_import, 'setup_database_skeleton'),
-            mock_func_factory(nominatim.data.country_info, 'setup_country_tables'),
-            mock_func_factory(nominatim.tools.database_import, 'import_osm_data'),
-            mock_func_factory(nominatim.tools.refresh, 'import_wikipedia_articles'),
-            mock_func_factory(nominatim.tools.refresh, 'import_secondary_importance'),
-            mock_func_factory(nominatim.tools.database_import, 'truncate_data_tables'),
-            mock_func_factory(nominatim.tools.database_import, 'load_data'),
-            mock_func_factory(nominatim.tools.database_import, 'create_tables'),
-            mock_func_factory(nominatim.tools.database_import, 'create_table_triggers'),
-            mock_func_factory(nominatim.tools.database_import, 'create_partition_tables'),
-            mock_func_factory(nominatim.tools.database_import, 'create_search_indices'),
-            mock_func_factory(nominatim.data.country_info, 'create_country_names'),
-            mock_func_factory(nominatim.tools.refresh, 'load_address_levels_from_config'),
-            mock_func_factory(nominatim.tools.postcodes, 'update_postcodes'),
-            mock_func_factory(nominatim.indexer.indexer.Indexer, 'index_full'),
-            mock_func_factory(nominatim.tools.refresh, 'setup_website'),
+            mock_func_factory(nominatim_db.tools.database_import, 'setup_database_skeleton'),
+            mock_func_factory(nominatim_db.data.country_info, 'setup_country_tables'),
+            mock_func_factory(nominatim_db.tools.database_import, 'import_osm_data'),
+            mock_func_factory(nominatim_db.tools.refresh, 'import_wikipedia_articles'),
+            mock_func_factory(nominatim_db.tools.refresh, 'import_secondary_importance'),
+            mock_func_factory(nominatim_db.tools.database_import, 'truncate_data_tables'),
+            mock_func_factory(nominatim_db.tools.database_import, 'load_data'),
+            mock_func_factory(nominatim_db.tools.database_import, 'create_tables'),
+            mock_func_factory(nominatim_db.tools.database_import, 'create_table_triggers'),
+            mock_func_factory(nominatim_db.tools.database_import, 'create_partition_tables'),
+            mock_func_factory(nominatim_db.tools.database_import, 'create_search_indices'),
+            mock_func_factory(nominatim_db.data.country_info, 'create_country_names'),
+            mock_func_factory(nominatim_db.tools.refresh, 'load_address_levels_from_config'),
+            mock_func_factory(nominatim_db.tools.postcodes, 'update_postcodes'),
+            mock_func_factory(nominatim_db.indexer.indexer.Indexer, 'index_full'),
+            mock_func_factory(nominatim_db.tools.refresh, 'setup_website'),
         ]
 
         params = ['import', '--osm-file', __file__]
 
         if with_updates:
-            mocks.append(mock_func_factory(nominatim.tools.freeze, 'drop_update_tables'))
+            mocks.append(mock_func_factory(nominatim_db.tools.freeze, 'drop_update_tables'))
             params.append('--no-updates')
 
-        cf_mock = mock_func_factory(nominatim.tools.refresh, 'create_functions')
+        cf_mock = mock_func_factory(nominatim_db.tools.refresh, 'create_functions')
 
 
         assert self.call_nominatim(*params) == 0
@@ -74,14 +74,14 @@ class TestCliImportWithDb:
 
     def test_import_continue_load_data(self, mock_func_factory):
         mocks = [
-            mock_func_factory(nominatim.tools.database_import, 'truncate_data_tables'),
-            mock_func_factory(nominatim.tools.database_import, 'load_data'),
-            mock_func_factory(nominatim.tools.database_import, 'create_search_indices'),
-            mock_func_factory(nominatim.data.country_info, 'create_country_names'),
-            mock_func_factory(nominatim.tools.postcodes, 'update_postcodes'),
-            mock_func_factory(nominatim.indexer.indexer.Indexer, 'index_full'),
-            mock_func_factory(nominatim.tools.refresh, 'setup_website'),
-            mock_func_factory(nominatim.db.properties, 'set_property')
+            mock_func_factory(nominatim_db.tools.database_import, 'truncate_data_tables'),
+            mock_func_factory(nominatim_db.tools.database_import, 'load_data'),
+            mock_func_factory(nominatim_db.tools.database_import, 'create_search_indices'),
+            mock_func_factory(nominatim_db.data.country_info, 'create_country_names'),
+            mock_func_factory(nominatim_db.tools.postcodes, 'update_postcodes'),
+            mock_func_factory(nominatim_db.indexer.indexer.Indexer, 'index_full'),
+            mock_func_factory(nominatim_db.tools.refresh, 'setup_website'),
+            mock_func_factory(nominatim_core.db.properties, 'set_property')
         ]
 
         assert self.call_nominatim('import', '--continue', 'load-data') == 0
@@ -94,11 +94,11 @@ class TestCliImportWithDb:
     def test_import_continue_indexing(self, mock_func_factory, placex_table,
                                       temp_db_conn):
         mocks = [
-            mock_func_factory(nominatim.tools.database_import, 'create_search_indices'),
-            mock_func_factory(nominatim.data.country_info, 'create_country_names'),
-            mock_func_factory(nominatim.indexer.indexer.Indexer, 'index_full'),
-            mock_func_factory(nominatim.tools.refresh, 'setup_website'),
-            mock_func_factory(nominatim.db.properties, 'set_property')
+            mock_func_factory(nominatim_db.tools.database_import, 'create_search_indices'),
+            mock_func_factory(nominatim_db.data.country_info, 'create_country_names'),
+            mock_func_factory(nominatim_db.indexer.indexer.Indexer, 'index_full'),
+            mock_func_factory(nominatim_db.tools.refresh, 'setup_website'),
+            mock_func_factory(nominatim_core.db.properties, 'set_property')
         ]
 
         assert self.call_nominatim('import', '--continue', 'indexing') == 0
@@ -112,10 +112,10 @@ class TestCliImportWithDb:
 
     def test_import_continue_postprocess(self, mock_func_factory):
         mocks = [
-            mock_func_factory(nominatim.tools.database_import, 'create_search_indices'),
-            mock_func_factory(nominatim.data.country_info, 'create_country_names'),
-            mock_func_factory(nominatim.tools.refresh, 'setup_website'),
-            mock_func_factory(nominatim.db.properties, 'set_property')
+            mock_func_factory(nominatim_db.tools.database_import, 'create_search_indices'),
+            mock_func_factory(nominatim_db.data.country_info, 'create_country_names'),
+            mock_func_factory(nominatim_db.tools.refresh, 'setup_website'),
+            mock_func_factory(nominatim_core.db.properties, 'set_property')
         ]
 
         assert self.call_nominatim('import', '--continue', 'db-postprocess') == 0
index 1179f22c98031edb3336af27c2ae36210c498905..01b1f6e0446b1940d8e31eb2f28096641ad2f107 100644 (file)
@@ -1,17 +1,17 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for command line interface wrapper for refresk command.
 """
 import pytest
 
-import nominatim.tools.refresh
-import nominatim.tools.postcodes
-import nominatim.indexer.indexer
+import nominatim_db.tools.refresh
+import nominatim_db.tools.postcodes
+import nominatim_db.indexer.indexer
 
 class TestRefresh:
 
@@ -28,8 +28,8 @@ class TestRefresh:
                              ('website', 'setup_website'),
                              ])
     def test_refresh_command(self, mock_func_factory, command, func):
-        mock_func_factory(nominatim.tools.refresh, 'create_functions')
-        func_mock = mock_func_factory(nominatim.tools.refresh, func)
+        mock_func_factory(nominatim_db.tools.refresh, 'create_functions')
+        func_mock = mock_func_factory(nominatim_db.tools.refresh, func)
 
         assert self.call_nominatim('refresh', '--' + command) == 0
         assert func_mock.called == 1
@@ -46,8 +46,8 @@ class TestRefresh:
 
 
     def test_refresh_postcodes(self, mock_func_factory, place_table):
-        func_mock = mock_func_factory(nominatim.tools.postcodes, 'update_postcodes')
-        idx_mock = mock_func_factory(nominatim.indexer.indexer.Indexer, 'index_postcodes')
+        func_mock = mock_func_factory(nominatim_db.tools.postcodes, 'update_postcodes')
+        idx_mock = mock_func_factory(nominatim_db.indexer.indexer.Indexer, 'index_postcodes')
 
         assert self.call_nominatim('refresh', '--postcodes') == 0
         assert func_mock.called == 1
@@ -60,7 +60,7 @@ class TestRefresh:
 
 
     def test_refresh_create_functions(self, mock_func_factory):
-        func_mock = mock_func_factory(nominatim.tools.refresh, 'create_functions')
+        func_mock = mock_func_factory(nominatim_db.tools.refresh, 'create_functions')
 
         assert self.call_nominatim('refresh', '--functions') == 0
         assert func_mock.called == 1
@@ -78,8 +78,8 @@ class TestRefresh:
 
 
     def test_refresh_secondary_importance_new_table(self, mock_func_factory):
-        mocks = [mock_func_factory(nominatim.tools.refresh, 'import_secondary_importance'),
-                 mock_func_factory(nominatim.tools.refresh, 'create_functions')]
+        mocks = [mock_func_factory(nominatim_db.tools.refresh, 'import_secondary_importance'),
+                 mock_func_factory(nominatim_db.tools.refresh, 'create_functions')]
 
         assert self.call_nominatim('refresh', '--secondary-importance') == 0
         assert mocks[0].called == 1
@@ -88,9 +88,9 @@ class TestRefresh:
 
     def test_refresh_importance_computed_after_wiki_import(self, monkeypatch, mock_func_factory):
         calls = []
-        monkeypatch.setattr(nominatim.tools.refresh, 'import_wikipedia_articles',
+        monkeypatch.setattr(nominatim_db.tools.refresh, 'import_wikipedia_articles',
                             lambda *args, **kwargs: calls.append('import') or 0)
-        monkeypatch.setattr(nominatim.tools.refresh, 'recompute_importance',
+        monkeypatch.setattr(nominatim_db.tools.refresh, 'recompute_importance',
                             lambda *args, **kwargs: calls.append('update'))
         func_mock = mock_func_factory(nominatim.tools.refresh, 'create_functions')
 
@@ -105,7 +105,7 @@ class TestRefresh:
                                         ('--data-area', 'r7723', '--data-area', 'r2'),
                                         ('--data-area', 'R9284425', '--data-object', 'n1234567894567')])
     def test_refresh_objects(self, params, mock_func_factory):
-        func_mock = mock_func_factory(nominatim.tools.refresh, 'invalidate_osm_object')
+        func_mock = mock_func_factory(nominatim_db.tools.refresh, 'invalidate_osm_object')
 
         assert self.call_nominatim('refresh', *params) == 0
 
@@ -115,7 +115,7 @@ class TestRefresh:
     @pytest.mark.parametrize('func', ('--data-object', '--data-area'))
     @pytest.mark.parametrize('param', ('234', 'a55', 'R 453', 'Rel'))
     def test_refresh_objects_bad_param(self, func, param, mock_func_factory):
-        func_mock = mock_func_factory(nominatim.tools.refresh, 'invalidate_osm_object')
+        func_mock = mock_func_factory(nominatim_db.tools.refresh, 'invalidate_osm_object')
 
         self.call_nominatim('refresh', func, param) == 1
         assert func_mock.called == 0
index a22d077a9f94e11f5b4b263d839e2479191241e2..ff900e58bbc988842fd0f66dcf98ddd77f32af54 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2023 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for replication command of command-line interface wrapper.
@@ -12,11 +12,11 @@ import time
 
 import pytest
 
-import nominatim.cli
-import nominatim.indexer.indexer
-import nominatim.tools.replication
-import nominatim.tools.refresh
-from nominatim.db import status
+import nominatim_db.cli
+import nominatim_db.indexer.indexer
+import nominatim_db.tools.replication
+import nominatim_db.tools.refresh
+from nominatim_core.db import status
 
 @pytest.fixture
 def tokenizer_mock(monkeypatch):
@@ -32,9 +32,9 @@ def tokenizer_mock(monkeypatch):
             self.finalize_import_called = True
 
     tok = DummyTokenizer()
-    monkeypatch.setattr(nominatim.tokenizer.factory, 'get_tokenizer_for_db',
+    monkeypatch.setattr(nominatim_db.tokenizer.factory, 'get_tokenizer_for_db',
                         lambda *args: tok)
-    monkeypatch.setattr(nominatim.tokenizer.factory, 'create_tokenizer',
+    monkeypatch.setattr(nominatim_db.tokenizer.factory, 'create_tokenizer',
                         lambda *args: tok)
 
     return tok
@@ -48,12 +48,12 @@ def init_status(temp_db_conn, status_table):
 
 @pytest.fixture
 def index_mock(mock_func_factory, tokenizer_mock, init_status):
-    return mock_func_factory(nominatim.indexer.indexer.Indexer, 'index_full')
+    return mock_func_factory(nominatim_db.indexer.indexer.Indexer, 'index_full')
 
 
 @pytest.fixture
 def update_mock(mock_func_factory, init_status, tokenizer_mock):
-    return mock_func_factory(nominatim.tools.replication, 'update')
+    return mock_func_factory(nominatim_db.tools.replication, 'update')
 
 
 class TestCliReplication:
@@ -66,7 +66,7 @@ class TestCliReplication:
     @pytest.fixture(autouse=True)
     def setup_update_function(self, monkeypatch):
         def _mock_updates(states):
-            monkeypatch.setattr(nominatim.tools.replication, 'update',
+            monkeypatch.setattr(nominatim_db.tools.replication, 'update',
                             lambda *args, **kwargs: states.pop())
 
         self.update_states = _mock_updates
@@ -78,10 +78,10 @@ class TestCliReplication:
                              (('--check-for-updates',), 'check_for_updates')
                              ])
     def test_replication_command(self, mock_func_factory, params, func):
-        func_mock = mock_func_factory(nominatim.tools.replication, func)
+        func_mock = mock_func_factory(nominatim_db.tools.replication, func)
 
         if params == ('--init',):
-            umock = mock_func_factory(nominatim.tools.refresh, 'create_functions')
+            umock = mock_func_factory(nominatim_db.tools.refresh, 'create_functions')
 
         assert self.call_nominatim(*params) == 0
         assert func_mock.called == 1
@@ -121,7 +121,7 @@ class TestCliReplication:
     @pytest.mark.parametrize("update_interval", [60, 3600])
     def test_replication_catchup(self, placex_table, monkeypatch, index_mock, update_interval):
         monkeypatch.setenv('NOMINATIM_REPLICATION_UPDATE_INTERVAL', str(update_interval))
-        self.update_states([nominatim.tools.replication.UpdateState.NO_CHANGES])
+        self.update_states([nominatim_db.tools.replication.UpdateState.NO_CHANGES])
 
         assert self.call_nominatim('--catch-up') == 0
 
@@ -133,8 +133,8 @@ class TestCliReplication:
 
 
     def test_replication_update_continuous(self, index_mock):
-        self.update_states([nominatim.tools.replication.UpdateState.UP_TO_DATE,
-                            nominatim.tools.replication.UpdateState.UP_TO_DATE])
+        self.update_states([nominatim_db.tools.replication.UpdateState.UP_TO_DATE,
+                            nominatim_db.tools.replication.UpdateState.UP_TO_DATE])
 
         with pytest.raises(IndexError):
             self.call_nominatim()
@@ -144,8 +144,8 @@ class TestCliReplication:
 
     def test_replication_update_continuous_no_change(self, mock_func_factory,
                                                      index_mock):
-        self.update_states([nominatim.tools.replication.UpdateState.NO_CHANGES,
-                            nominatim.tools.replication.UpdateState.UP_TO_DATE])
+        self.update_states([nominatim_db.tools.replication.UpdateState.NO_CHANGES,
+                            nominatim_db.tools.replication.UpdateState.UP_TO_DATE])
 
         sleep_mock = mock_func_factory(time, 'sleep')
 
index ff8b587da2e9f875625093380405aec64a0b6ed5..bb649d23289e4be75c73dcc373fad712c9b6be50 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Test for loading dotenv configuration.
@@ -10,8 +10,8 @@ Test for loading dotenv configuration.
 from pathlib import Path
 import pytest
 
-from nominatim.config import Configuration, flatten_config_list
-from nominatim.errors import UsageError
+from nominatim_core.config import Configuration, flatten_config_list
+from nominatim_core.errors import UsageError
 
 @pytest.fixture
 def make_config():
index 7bc91fd75f8e15c474eee7fa8d80b03e9942ef61..06bfff065f4673c54ae7fe4bdc4c5df91f7933eb 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Test for loading extra Python modules.
@@ -12,7 +12,7 @@ import sys
 
 import pytest
 
-from nominatim.config import Configuration
+from nominatim_core.config import Configuration
 
 @pytest.fixture
 def test_config(src_dir, tmp_path):
@@ -27,12 +27,12 @@ def test_config(src_dir, tmp_path):
 
 
 def test_load_default_module(test_config):
-    module = test_config.load_plugin_module('version', 'nominatim')
+    module = test_config.load_plugin_module('version', 'nominatim_db')
 
     assert isinstance(module.NOMINATIM_VERSION, tuple)
 
 def test_load_default_module_with_hyphen(test_config):
-    module = test_config.load_plugin_module('place-info', 'nominatim.data')
+    module = test_config.load_plugin_module('place-info', 'nominatim_db.data')
 
     assert isinstance(module.PlaceInfo, object)
 
index 314637460525e0e2f8aefac5e81b63a193b12514..c9e8f0487f2e1aba0ffd1cff90105946a757eb1b 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 import itertools
 import sys
@@ -13,12 +13,12 @@ import pytest
 
 # always test against the source
 SRC_DIR = (Path(__file__) / '..' / '..' / '..').resolve()
-sys.path.insert(0, str(SRC_DIR))
+sys.path.insert(0, str(SRC_DIR / 'src'))
 
-from nominatim.config import Configuration
-from nominatim.db import connection
-from nominatim.db.sql_preprocessor import SQLPreprocessor
-import nominatim.tokenizer.factory
+from nominatim_core.config import Configuration
+from nominatim_core.db import connection
+from nominatim_core.db.sql_preprocessor import SQLPreprocessor
+import nominatim_db.tokenizer.factory
 
 import dummy_tokenizer
 import mocks
@@ -229,7 +229,8 @@ def tokenizer_mock(monkeypatch, property_table):
     def _import_dummy(*args, **kwargs):
         return dummy_tokenizer
 
-    monkeypatch.setattr(nominatim.tokenizer.factory, "_import_tokenizer", _import_dummy)
+    monkeypatch.setattr(nominatim_db.tokenizer.factory,
+                        "_import_tokenizer", _import_dummy)
     property_table.set('tokenizer', 'dummy')
 
     def _create_tokenizer():
index 73b83b1df840b3842bbb099ce9d5c2cc5c3af887..7d586b3c1520d9e0fea75cbd144c6111b3c0e58a 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Specialised psycopg2 cursor with shortcut functions useful for testing.
index 2234f40d112627a8af00d575a77587c26487341b..14b306bb764d70717f5c572304a4634af330ba9e 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for function that handle country properties.
@@ -10,7 +10,7 @@ Tests for function that handle country properties.
 from textwrap import dedent
 import pytest
 
-from nominatim.data import country_info
+from nominatim_db.data import country_info
 
 @pytest.fixture
 def loaded_country(def_config):
index 9765f2794f0c32867dcc1b0804c9fca4c58f2a71..019f53c15d0ce59fd0ba392f775eafc3b12edb6f 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for function providing a non-blocking query interface towards PostgreSQL.
@@ -13,7 +13,7 @@ import concurrent.futures
 import pytest
 import psycopg2
 
-from nominatim.db.async_connection import DBConnection, DeadlockHandler
+from nominatim_core.db.async_connection import DBConnection, DeadlockHandler
 
 
 @pytest.fixture
index dbba61093816bf7bde2d07f9013eb46eee0972c5..7ecf3bb4e27d3a37a7b78a4f2528ade19f20e2fb 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for specialised connection and cursor classes.
@@ -10,7 +10,7 @@ Tests for specialised connection and cursor classes.
 import pytest
 import psycopg2
 
-from nominatim.db.connection import connect, get_pg_env
+from nominatim_core.db.connection import connect, get_pg_env
 
 @pytest.fixture
 def db(dsn):
index cdd1b7af97244c453538b6cb8e17dcca469d5099..aca1b1f8a92ba859412519283225c84d8863fb36 100644 (file)
@@ -1,15 +1,15 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for property table manpulation.
 """
 import pytest
 
-from nominatim.db import properties
+from nominatim_core.db import properties
 
 @pytest.fixture
 def property_factory(property_table, temp_db_cursor):
index 9997367c424e3188c1f9bf043c50dce424d5a97f..1ef6bc88ce9798def52c8ce99b909da669e35ff9 100644 (file)
@@ -1,15 +1,15 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for SQL preprocessing.
 """
 import pytest
 
-from nominatim.db.sql_preprocessor import SQLPreprocessor
+from nominatim_core.db.sql_preprocessor import SQLPreprocessor
 
 @pytest.fixture
 def sql_factory(tmp_path):
index 05fb2c7f1c8bd47826559ab07dc708d148abae2c..67cd22e91d536d7f8281f18ff242e824676d6fee 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for status table manipulation.
@@ -11,8 +11,8 @@ import datetime as dt
 
 import pytest
 
-import nominatim.db.status
-from nominatim.errors import UsageError
+import nominatim_core.db.status
+from nominatim_core.errors import UsageError
 
 OSM_NODE_DATA = """\
 <osm version="0.6" generator="OpenStreetMap server" copyright="OpenStreetMap and contributors" attribution="http://www.openstreetmap.org/copyright" license="http://opendatacommons.org/licenses/odbl/1-0/">
@@ -22,7 +22,7 @@ OSM_NODE_DATA = """\
 """
 
 def iso_date(date):
-    return dt.datetime.strptime(date, nominatim.db.status.ISODATE_FORMAT)\
+    return dt.datetime.strptime(date, nominatim_core.db.status.ISODATE_FORMAT)\
                .replace(tzinfo=dt.timezone.utc)
 
 
@@ -36,7 +36,7 @@ def test_compute_database_date_from_osm2pgsql(table_factory, temp_db_conn, offli
     table_factory('osm2pgsql_properties', 'property TEXT, value TEXT',
                   content=(('current_timestamp', '2024-01-03T23:45:54Z'), ))
 
-    date = nominatim.db.status.compute_database_date(temp_db_conn, offline=offline)
+    date = nominatim_core.db.status.compute_database_date(temp_db_conn, offline=offline)
     assert date == iso_date('2024-01-03T23:45:54')
 
 
@@ -44,12 +44,12 @@ def test_compute_database_date_from_osm2pgsql_nodata(table_factory, temp_db_conn
     table_factory('osm2pgsql_properties', 'property TEXT, value TEXT')
 
     with pytest.raises(UsageError, match='Cannot determine database date from data in offline mode'):
-        nominatim.db.status.compute_database_date(temp_db_conn, offline=True)
+        nominatim_core.db.status.compute_database_date(temp_db_conn, offline=True)
 
 
 def test_compute_database_date_place_empty(place_table, temp_db_conn):
     with pytest.raises(UsageError):
-        nominatim.db.status.compute_database_date(temp_db_conn)
+        nominatim_core.db.status.compute_database_date(temp_db_conn)
 
 
 def test_compute_database_date_valid(monkeypatch, place_row, temp_db_conn):
@@ -60,9 +60,9 @@ def test_compute_database_date_valid(monkeypatch, place_row, temp_db_conn):
         requested_url.append(url)
         return OSM_NODE_DATA
 
-    monkeypatch.setattr(nominatim.db.status, "get_url", mock_url)
+    monkeypatch.setattr(nominatim_core.db.status, "get_url", mock_url)
 
-    date = nominatim.db.status.compute_database_date(temp_db_conn)
+    date = nominatim_core.db.status.compute_database_date(temp_db_conn)
 
     assert requested_url == ['https://www.openstreetmap.org/api/0.6/node/45673/1']
     assert date == iso_date('2006-01-27T22:09:10')
@@ -76,15 +76,15 @@ def test_compute_database_broken_api(monkeypatch, place_row, temp_db_conn):
         requested_url.append(url)
         return '<osm version="0.6" generator="OpenStre'
 
-    monkeypatch.setattr(nominatim.db.status, "get_url", mock_url)
+    monkeypatch.setattr(nominatim_core.db.status, "get_url", mock_url)
 
     with pytest.raises(UsageError):
-        nominatim.db.status.compute_database_date(temp_db_conn)
+        nominatim_core.db.status.compute_database_date(temp_db_conn)
 
 
 def test_set_status_empty_table(temp_db_conn, temp_db_cursor):
     date = dt.datetime.fromordinal(1000000).replace(tzinfo=dt.timezone.utc)
-    nominatim.db.status.set_status(temp_db_conn, date=date)
+    nominatim_core.db.status.set_status(temp_db_conn, date=date)
 
     assert temp_db_cursor.row_set("SELECT * FROM import_status") == \
              {(date, None, True)}
@@ -92,12 +92,12 @@ def test_set_status_empty_table(temp_db_conn, temp_db_cursor):
 
 def test_set_status_filled_table(temp_db_conn, temp_db_cursor):
     date = dt.datetime.fromordinal(1000000).replace(tzinfo=dt.timezone.utc)
-    nominatim.db.status.set_status(temp_db_conn, date=date)
+    nominatim_core.db.status.set_status(temp_db_conn, date=date)
 
     assert temp_db_cursor.table_rows('import_status') == 1
 
     date = dt.datetime.fromordinal(1000100).replace(tzinfo=dt.timezone.utc)
-    nominatim.db.status.set_status(temp_db_conn, date=date, seq=456, indexed=False)
+    nominatim_core.db.status.set_status(temp_db_conn, date=date, seq=456, indexed=False)
 
     assert temp_db_cursor.row_set("SELECT * FROM import_status") == \
              {(date, 456, False)}
@@ -105,25 +105,25 @@ def test_set_status_filled_table(temp_db_conn, temp_db_cursor):
 
 def test_set_status_missing_date(temp_db_conn, temp_db_cursor):
     date = dt.datetime.fromordinal(1000000).replace(tzinfo=dt.timezone.utc)
-    nominatim.db.status.set_status(temp_db_conn, date=date)
+    nominatim_core.db.status.set_status(temp_db_conn, date=date)
 
     assert temp_db_cursor.table_rows('import_status') == 1
 
-    nominatim.db.status.set_status(temp_db_conn, date=None, seq=456, indexed=False)
+    nominatim_core.db.status.set_status(temp_db_conn, date=None, seq=456, indexed=False)
 
     assert temp_db_cursor.row_set("SELECT * FROM import_status") == \
              {(date, 456, False)}
 
 
 def test_get_status_empty_table(temp_db_conn):
-    assert nominatim.db.status.get_status(temp_db_conn) == (None, None, None)
+    assert nominatim_core.db.status.get_status(temp_db_conn) == (None, None, None)
 
 
 def test_get_status_success(temp_db_conn):
     date = dt.datetime.fromordinal(1000000).replace(tzinfo=dt.timezone.utc)
-    nominatim.db.status.set_status(temp_db_conn, date=date, seq=667, indexed=False)
+    nominatim_core.db.status.set_status(temp_db_conn, date=date, seq=667, indexed=False)
 
-    assert nominatim.db.status.get_status(temp_db_conn) == \
+    assert nominatim_core.db.status.get_status(temp_db_conn) == \
              (date, 667, False)
 
 
@@ -131,14 +131,14 @@ def test_get_status_success(temp_db_conn):
 @pytest.mark.parametrize("new_state", [True, False])
 def test_set_indexed(temp_db_conn, temp_db_cursor, old_state, new_state):
     date = dt.datetime.fromordinal(1000000).replace(tzinfo=dt.timezone.utc)
-    nominatim.db.status.set_status(temp_db_conn, date=date, indexed=old_state)
-    nominatim.db.status.set_indexed(temp_db_conn, new_state)
+    nominatim_core.db.status.set_status(temp_db_conn, date=date, indexed=old_state)
+    nominatim_core.db.status.set_indexed(temp_db_conn, new_state)
 
     assert temp_db_cursor.scalar("SELECT indexed FROM import_status") == new_state
 
 
 def test_set_indexed_empty_status(temp_db_conn, temp_db_cursor):
-    nominatim.db.status.set_indexed(temp_db_conn, True)
+    nominatim_core.db.status.set_indexed(temp_db_conn, True)
 
     assert temp_db_cursor.table_rows("import_status") == 0
 
@@ -147,8 +147,8 @@ def test_log_status(temp_db_conn, temp_db_cursor):
     date = dt.datetime.fromordinal(1000000).replace(tzinfo=dt.timezone.utc)
     start = dt.datetime.now() - dt.timedelta(hours=1)
 
-    nominatim.db.status.set_status(temp_db_conn, date=date, seq=56)
-    nominatim.db.status.log_status(temp_db_conn, start, 'index')
+    nominatim_core.db.status.set_status(temp_db_conn, date=date, seq=56)
+    nominatim_core.db.status.log_status(temp_db_conn, start, 'index')
 
     temp_db_conn.commit()
 
index e0be962f09e8fe991840d6533b87c3ad05ff9585..2eef1bd949b0b7577ed66244f0c04d40148306b2 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for DB utility functions in db.utils
@@ -11,8 +11,8 @@ import json
 
 import pytest
 
-import nominatim.db.utils as db_utils
-from nominatim.errors import UsageError
+import nominatim_core.db.utils as db_utils
+from nominatim_core.errors import UsageError
 
 def test_execute_file_success(dsn, temp_db_cursor, tmp_path):
     tmpfile = tmp_path / 'test.sql'
index ed32c650dab3d873ae8dbddbf5fead64ea1e94ac..d78eaeb421d72221189ff039426c2354fcc0d556 100644 (file)
@@ -1,14 +1,14 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tokenizer for testing.
 """
-from nominatim.data.place_info import PlaceInfo
-from nominatim.config import Configuration
+from nominatim_db.data.place_info import PlaceInfo
+from nominatim_core.config import Configuration
 
 def create(dsn, data_dir):
     """ Create a new instance of the tokenizer provided by this module.
index 45c68a33941a2b24141ff1c08e0e82c233efe215..93481e8a8a0bc8bd6b7978c07a99cc206367f466 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for running the indexing.
@@ -10,8 +10,8 @@ Tests for running the indexing.
 import itertools
 import pytest
 
-from nominatim.indexer import indexer
-from nominatim.tokenizer import factory
+from nominatim_db.indexer import indexer
+from nominatim_db.tokenizer import factory
 
 class IndexerTestDB:
 
index 08fd60a227b0e29be9dbe5777689639641d23d2b..5c465e8b7e988b6488756f9a8fb8a5c54278ba94 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Legacy word table for testing with functions to prefil and test contents
index fa94d0354cb81938e29185b0a433a23e42831f0e..9804341f41c33fd91df794e15fcf935f3f00d395 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Legacy word table for testing with functions to prefil and test contents
index 32b6e6dfa5321fe656cd55dcd744b22fa5690776..a1020c8677eb72b5ced751824e03d5e4cfde5fd5 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Custom mocks for testing.
@@ -11,7 +11,7 @@ import itertools
 
 import psycopg2.extras
 
-from nominatim.db import properties
+from nominatim_core.db import properties
 
 # This must always point to the mock word table for the default tokenizer.
 from mock_icu_word_table import MockIcuWordTable as MockWordTable
index 11a71a5fb3b992ff70b1c981aea22bf17ad96f3c..01fb162b8e78ae4b90b7ac6253ff43dd1212875d 100644 (file)
@@ -1,16 +1,16 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for the sanitizer that normalizes housenumbers.
 """
 import pytest
 
-from nominatim.tokenizer.place_sanitizer import PlaceSanitizer
-from nominatim.data.place_info import PlaceInfo
+from nominatim_db.tokenizer.place_sanitizer import PlaceSanitizer
+from nominatim_db.data.place_info import PlaceInfo
 
 @pytest.fixture
 def sanitize(request, def_config):
index 14498cbc0abd5cfeba585e09b2aa627a6616d57e..70cc5256640b9918535367d986818b082f67f747 100644 (file)
@@ -1,17 +1,17 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for the sanitizer that normalizes postcodes.
 """
 import pytest
 
-from nominatim.tokenizer.place_sanitizer import PlaceSanitizer
-from nominatim.data.place_info import PlaceInfo
-from nominatim.data import country_info
+from nominatim_db.tokenizer.place_sanitizer import PlaceSanitizer
+from nominatim_db.data.place_info import PlaceInfo
+from nominatim_db.data import country_info
 
 @pytest.fixture
 def sanitize(def_config, request):
index fc17ad24d267dcd4c9a7143655ae9e41d425e47c..4badb57f7b25f48b90315ba5402ecacadf6560d2 100644 (file)
@@ -1,16 +1,16 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for sanitizer that clean up TIGER tags.
 """
 import pytest
 
-from nominatim.tokenizer.place_sanitizer import PlaceSanitizer
-from nominatim.data.place_info import PlaceInfo
+from nominatim_db.tokenizer.place_sanitizer import PlaceSanitizer
+from nominatim_db.data.place_info import PlaceInfo
 
 class TestCleanTigerTags:
 
index 77366c326066ebe62c81d4029f313e3738cd10b3..f9688c0be14dad44eae47679f18169fe81de582c 100644 (file)
@@ -1,17 +1,16 @@
-# SPDX-License-Identifier: GPL-2.0-only\r
+# SPDX-License-Identifier: GPL-3.0-or-later\r
 #\r
 # This file is part of Nominatim. (https://nominatim.org)\r
 #\r
-# Copyright (C) 2023 by the Nominatim developer community.\r
+# Copyright (C) 2024 by the Nominatim developer community.\r
 # For a full list of authors see the git log.\r
 """\r
 Tests for the sanitizer that normalizes housenumbers.\r
 """\r
 import pytest\r
 \r
-\r
-from nominatim.data.place_info import PlaceInfo\r
-from nominatim.tokenizer.place_sanitizer import PlaceSanitizer\r
+from nominatim_db.data.place_info import PlaceInfo\r
+from nominatim_db.tokenizer.place_sanitizer import PlaceSanitizer\r
 \r
 \r
 class TestWithDefault:\r
@@ -324,4 +323,4 @@ class TestAllParameters:
                                     name='foo', ref='foo', name_pqr='bar', ref_pqr='baz')\r
 \r
         assert res == [('bar', 'name', 'pqr'), ('baz', 'ref', 'pqr'),\r
-                       ('foo', 'name', ''), ('foo', 'ref', '')]
\ No newline at end of file
+                       ('foo', 'name', ''), ('foo', 'ref', '')]\r
index d8514b4aa553f4ebd52b510fc6f416b8c9be7710..37ed07f4cc56eabd51e2cc57d880a182bf267afc 100644 (file)
@@ -1,16 +1,16 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for sanitizer configuration helper functions.
 """
 import pytest
 
-from nominatim.errors import UsageError
-from nominatim.tokenizer.sanitizers.config import SanitizerConfig
+from nominatim_core.errors import UsageError
+from nominatim_db.tokenizer.sanitizers.config import SanitizerConfig
 
 def test_string_list_default_empty():
     assert SanitizerConfig().get_string_list('op') == []
index 9ca539d57cb529cac93283c813c3f0a7075900a8..cd10b5c6cb27b025a75b20b8c030ffede259609b 100644 (file)
@@ -1,18 +1,18 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for the sanitizer that splits multivalue lists.
 """
 import pytest
 
-from nominatim.tokenizer.place_sanitizer import PlaceSanitizer
-from nominatim.data.place_info import PlaceInfo
+from nominatim_db.tokenizer.place_sanitizer import PlaceSanitizer
+from nominatim_db.data.place_info import PlaceInfo
 
-from nominatim.errors import UsageError
+from nominatim_core.errors import UsageError
 
 class TestSplitName:
 
index 7fa0a018d7603bf6a80d163e8ec818fc1208bb2e..6a4cffcf3039d564b431bc0128ddf6f61697d416 100644 (file)
@@ -1,16 +1,16 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for the sanitizer that handles braced suffixes.
 """
 import pytest
 
-from nominatim.tokenizer.place_sanitizer import PlaceSanitizer
-from nominatim.data.place_info import PlaceInfo
+from nominatim_db.tokenizer.place_sanitizer import PlaceSanitizer
+from nominatim_db.data.place_info import PlaceInfo
 
 class TestStripBrace:
 
index 1feecf3f6341b32728ef03ea91ab1a672962bd47..2022e41002e1b58ffd4d7b1f4ce1447ee33ab4dd 100644 (file)
@@ -1,17 +1,17 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for the sanitizer that enables language-dependent analyzers.
 """
 import pytest
 
-from nominatim.data.place_info import PlaceInfo
-from nominatim.tokenizer.place_sanitizer import PlaceSanitizer
-from nominatim.data.country_info import setup_country_config
+from nominatim_db.data.place_info import PlaceInfo
+from nominatim_db.tokenizer.place_sanitizer import PlaceSanitizer
+from nominatim_db.data.country_info import setup_country_config
 
 class TestWithDefaults:
 
index 946f137ce768a4371a65d5deba52b758d0609ee1..08edbb564462a1ea9556b14616586220b2f748f0 100644 (file)
@@ -1,9 +1,16 @@
-from nominatim.data.place_info import PlaceInfo
-from nominatim.data.place_name import PlaceName
-from nominatim.tokenizer.place_sanitizer import PlaceSanitizer
+# 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.
 from typing import Mapping, Optional, List
 import pytest
 
+from nominatim_db.data.place_info import PlaceInfo
+from nominatim_db.data.place_name import PlaceName
+from nominatim_db.tokenizer.place_sanitizer import PlaceSanitizer
+
 class TestTagJapanese:
     @pytest.fixture(autouse=True)
     def setup_country(self, def_config):
index 166e6ba6388f424dbbd2347751398294eec45a96..e723625d6fa3f95bb9301a692a7f27d1bad6020a 100644 (file)
@@ -1,17 +1,17 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for creating new tokenizers.
 """
 import pytest
 
-from nominatim.db import properties
-from nominatim.tokenizer import factory
-from nominatim.errors import UsageError
+from nominatim_core.db import properties
+from nominatim_db.tokenizer import factory
+from nominatim_core.errors import UsageError
 from dummy_tokenizer import DummyTokenizer
 
 
index 2a4865db2acb95e4e177c5732441ef1f7dc610a0..0d51bfc4e33006afef1830fc7170332e4318b942 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for ICU tokenizer.
@@ -12,11 +12,11 @@ import itertools
 
 import pytest
 
-from nominatim.tokenizer import icu_tokenizer
-import nominatim.tokenizer.icu_rule_loader
-from nominatim.db import properties
-from nominatim.db.sql_preprocessor import SQLPreprocessor
-from nominatim.data.place_info import PlaceInfo
+from nominatim_db.tokenizer import icu_tokenizer
+import nominatim_db.tokenizer.icu_rule_loader
+from nominatim_core.db import properties
+from nominatim_core.db.sql_preprocessor import SQLPreprocessor
+from nominatim_db.data.place_info import PlaceInfo
 
 from mock_icu_word_table import MockIcuWordTable
 
@@ -83,7 +83,7 @@ def analyzer(tokenizer_factory, test_config, monkeypatch,
             cfgstr['token-analysis'].append({'id': '@postcode',
                                              'analyzer': 'postcodes'})
         (test_config.project_dir / 'icu_tokenizer.yaml').write_text(yaml.dump(cfgstr))
-        tok.loader = nominatim.tokenizer.icu_rule_loader.ICURuleLoader(test_config)
+        tok.loader = nominatim_db.tokenizer.icu_rule_loader.ICURuleLoader(test_config)
 
         return tok.name_analyzer()
 
@@ -157,7 +157,7 @@ def test_init_new(tokenizer_factory, test_config, db_prop):
     tok = tokenizer_factory()
     tok.init_new_db(test_config)
 
-    assert db_prop(nominatim.tokenizer.icu_rule_loader.DBCFG_IMPORT_NORM_RULES) \
+    assert db_prop(nominatim_db.tokenizer.icu_rule_loader.DBCFG_IMPORT_NORM_RULES) \
             .startswith(':: lower ();')
 
 
index e89d3734b85d7483dcd4ef1f90e2ea807f2491a8..e2997659f65352c603d1ad04fe144f558beb6fb3 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for converting a config file to ICU rules.
@@ -12,8 +12,8 @@ from textwrap import dedent
 import pytest
 import yaml
 
-from nominatim.tokenizer.icu_rule_loader import ICURuleLoader
-from nominatim.errors import UsageError
+from nominatim_db.tokenizer.icu_rule_loader import ICURuleLoader
+from nominatim_core.errors import UsageError
 
 from icu import Transliterator
 
index f7f04490b4c9ffc690221519bcb4389719b9f6dd..be33b3b1195b5eadd4c7706642c061b685a52663 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Test for legacy tokenizer.
@@ -12,10 +12,10 @@ import re
 
 import pytest
 
-from nominatim.data.place_info import PlaceInfo
-from nominatim.tokenizer import legacy_tokenizer
-from nominatim.db import properties
-from nominatim.errors import UsageError
+from nominatim_db.data.place_info import PlaceInfo
+from nominatim_db.tokenizer import legacy_tokenizer
+from nominatim_core.db import properties
+from nominatim_core.errors import UsageError
 
 from mock_legacy_word_table import MockLegacyWordTable
 
index 3dd3033ca6f5031dae5f58276a5bada03e7cbec3..b424c5ef8157a10ea982fc553da418e438488fb8 100644 (file)
@@ -1,17 +1,17 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for execution of the sanitztion step.
 """
 import pytest
 
-from nominatim.errors import UsageError
-import nominatim.tokenizer.place_sanitizer as sanitizer
-from nominatim.data.place_info import PlaceInfo
+from nominatim_core.errors import UsageError
+import nominatim_db.tokenizer.place_sanitizer as sanitizer
+from nominatim_db.data.place_info import PlaceInfo
 
 
 def test_placeinfo_clone_new_name():
index 8d966c46439b484d068ae543b5957e97768f294e..245dc43d71fb76ad7c5680b61b4ff76cc180ff44 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for special postcode analysis and variant generation.
@@ -11,9 +11,9 @@ import pytest
 
 from icu import Transliterator
 
-import nominatim.tokenizer.token_analysis.postcodes as module
-from nominatim.data.place_name import PlaceName
-from nominatim.errors import UsageError
+import nominatim_db.tokenizer.token_analysis.postcodes as module
+from nominatim_db.data.place_name import PlaceName
+from nominatim_core.errors import UsageError
 
 DEFAULT_NORMALIZATION = """ :: NFD ();
                             '🜳' > ' ';
index 976bbd1b6515dc325ec4df1ea23753340e8ece3c..277758e1ff9b064827795496b614ad0fb0cde57a 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for import name normalisation and variant generation.
@@ -11,8 +11,8 @@ import pytest
 
 from icu import Transliterator
 
-import nominatim.tokenizer.token_analysis.generic as module
-from nominatim.errors import UsageError
+import nominatim_db.tokenizer.token_analysis.generic as module
+from nominatim_core.errors import UsageError
 
 DEFAULT_NORMALIZATION = """ :: NFD ();
                             '🜳' > ' ';
index ff4c3a74c455a60533167ae339277ad1a5ecee2f..ea813bdc7f996e17c42ed1c90ae255d349fa0288 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for generic token analysis, mutation part.
@@ -11,8 +11,8 @@ import pytest
 
 from icu import Transliterator
 
-import nominatim.tokenizer.token_analysis.generic as module
-from nominatim.errors import UsageError
+import nominatim_db.tokenizer.token_analysis.generic as module
+from nominatim_core.errors import UsageError
 
 DEFAULT_NORMALIZATION = """ '🜳' > ' ';
                             [[:Nonspacing Mark:] [:Cf:]] >;
index 6dd5f2d650b521fd6beba8ebbfd7c98531f6d15e..60b25c3b46944fa7e100b0d78836616b7eafcc5b 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 import pytest
 
index a9bf9b2abbc5dfc7d7b4846709bb2aed527c92ee..c5aaaaae9f9c77ee4a614f6de51b610702929b8e 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for functions to add additional data to the database.
@@ -11,7 +11,7 @@ from pathlib import Path
 
 import pytest
 
-from nominatim.tools import add_osm_data
+from nominatim_db.tools import add_osm_data
 
 class CaptureGetUrl:
 
index ae5944afa185f0a35327d5ebf1f5359862df5b22..a59f3d9da10aaacd0fb2b4a773fa8c018893d244 100644 (file)
@@ -1,18 +1,18 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for maintenance and analysis functions.
 """
 import pytest
 
-from nominatim.errors import UsageError
-from nominatim.tools import admin
-from nominatim.tokenizer import factory
-from nominatim.db.sql_preprocessor import SQLPreprocessor
+from nominatim_core.errors import UsageError
+from nominatim_db.tools import admin
+from nominatim_db.tokenizer import factory
+from nominatim_core.db.sql_preprocessor import SQLPreprocessor
 
 @pytest.fixture(autouse=True)
 def create_placex_table(project_env, tokenizer_mock, temp_db_cursor, placex_table):
index 65f0590320ad09a309b91ff7f693ddae1b2cebe5..886bd75b72842216d7e1173e2cf57f53cac6c400 100644 (file)
@@ -1,16 +1,16 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for database integrity checks.
 """
 import pytest
 
-from nominatim.tools import check_database as chkdb
-import nominatim.version
+from nominatim_db.tools import check_database as chkdb
+import nominatim_db.version
 
 def test_check_database_unknown_db(def_config, monkeypatch):
     monkeypatch.setenv('NOMINATIM_DATABASE_DSN', 'pgsql:dbname=fjgkhughwgh2423gsags')
@@ -32,7 +32,7 @@ def test_check_connection_bad(def_config):
 
 def test_check_database_version_good(property_table, temp_db_conn, def_config):
     property_table.set('database_version',
-                       '{0[0]}.{0[1]}.{0[2]}-{0[3]}'.format(nominatim.version.NOMINATIM_VERSION))
+                       str(nominatim_db.version.NOMINATIM_VERSION))
     assert chkdb.check_database_version(temp_db_conn, def_config) == chkdb.CheckState.OK
 
 def test_check_database_version_bad(property_table, temp_db_conn, def_config):
index 68d19a07beb78e0b3b4adffa298016d2da3eff4d..a95f3d9804a8f0853aac744482a009f38863250b 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for functions to import a new database.
@@ -13,8 +13,8 @@ from contextlib import closing
 import pytest
 import psycopg2
 
-from nominatim.tools import database_import
-from nominatim.errors import UsageError
+from nominatim_db.tools import database_import
+from nominatim_core.errors import UsageError
 
 class TestDatabaseSetup:
     DBNAME = 'test_nominatim_python_unittest'
index b4439c122dd4dee9d9630bc72e9f309a285cde26..50bec7e6eaa775fd9f95f3dc39876228ed4322df 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for tools.exec_utils module.
@@ -12,12 +12,8 @@ import subprocess
 
 import pytest
 
-from nominatim.config import Configuration
-import nominatim.tools.exec_utils as exec_utils
-import nominatim.paths
-
-
-### run_osm2pgsql
+from nominatim_core.config import Configuration
+import nominatim_db.tools.exec_utils as exec_utils
 
 def test_run_osm2pgsql(osm2pgsql_options):
     osm2pgsql_options['append'] = False
index 0d44501a6360357ee9b22c19fa3b20bb317af2c7..f64850fb2e99312aade36ebbd404c4f23020a132 100644 (file)
@@ -1,13 +1,13 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for freeze functions (removing unused database parts).
 """
-from nominatim.tools import freeze
+from nominatim_db.tools import freeze
 
 NOMINATIM_RUNTIME_TABLES = [
     'country_name', 'country_osm_grid',
index 75a6a066d43f19598d3b0b00b6bf347cb5d7e6ee..91c9fc1536b114ca27be6aff38c19064830b2f94 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
     Tests for import special phrases methods
 """
 from shutil import copyfile
 import pytest
-from nominatim.tools.special_phrases.sp_importer import SPImporter
-from nominatim.tools.special_phrases.sp_wiki_loader import SPWikiLoader
-from nominatim.tools.special_phrases.special_phrase import SpecialPhrase
-from nominatim.errors import UsageError
+from nominatim_db.tools.special_phrases.sp_importer import SPImporter
+from nominatim_db.tools.special_phrases.sp_wiki_loader import SPWikiLoader
+from nominatim_db.tools.special_phrases.special_phrase import SpecialPhrase
+from nominatim_core.errors import UsageError
 
 from cursor import CursorForTesting
 
@@ -182,7 +182,7 @@ def test_import_phrases(monkeypatch, temp_db_conn, def_config, sp_importer,
     table_factory('place_classtype_amenity_animal_shelter')
     table_factory('place_classtype_wrongclass_wrongtype')
 
-    monkeypatch.setattr('nominatim.tools.special_phrases.sp_wiki_loader._get_wiki_content',
+    monkeypatch.setattr('nominatim_db.tools.special_phrases.sp_wiki_loader._get_wiki_content',
                         lambda lang: xml_wiki_content)
 
     tokenizer = tokenizer_mock()
index 88c7a4dd7826a4f9a97a09455103fef6a1874971..d33ff4223613a8d4d4280fab346cdf135c9e22b3 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for migration functions
@@ -10,9 +10,9 @@ Tests for migration functions
 import pytest
 import psycopg2.extras
 
-from nominatim.tools import migration
-from nominatim.errors import UsageError
-import nominatim.version
+from nominatim_db.tools import migration
+from nominatim_core.errors import UsageError
+import nominatim_db.version
 
 from mock_legacy_word_table import MockLegacyWordTable
 
@@ -66,17 +66,17 @@ def test_set_up_migration_for_36(temp_db_with_extensions, temp_db_cursor,
 def test_already_at_version(def_config, property_table):
 
     property_table.set('database_version',
-                       '{0[0]}.{0[1]}.{0[2]}-{0[3]}'.format(nominatim.version.NOMINATIM_VERSION))
+                       str(nominatim_db.version.NOMINATIM_VERSION))
 
     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]
+    oldversion = [x for x in nominatim_db.version.NOMINATIM_VERSION]
     oldversion[0] -= 1
     property_table.set('database_version',
-                       '{0[0]}.{0[1]}.{0[2]}-{0[3]}'.format(oldversion))
+                       str(nominatim_db.version.NominatimVersion(*oldversion)))
 
     done = {'old': False, 'new': False}
     def _migration(**_):
@@ -90,14 +90,13 @@ def test_run_single_migration(def_config, temp_db_cursor, property_table,
     oldversion[0] = 0
     monkeypatch.setattr(migration, '_MIGRATION_FUNCTIONS',
                         [(tuple(oldversion), _old_migration),
-                         (nominatim.version.NOMINATIM_VERSION, _migration)])
+                         (nominatim_db.version.NOMINATIM_VERSION, _migration)])
 
     assert migration.migrate(def_config, {}) == 0
 
     assert done['new']
     assert not done['old']
-    assert property_table.get('database_version') == \
-           '{0[0]}.{0[1]}.{0[2]}-{0[3]}'.format(nominatim.version.NOMINATIM_VERSION)
+    assert property_table.get('database_version') == str(nominatim_db.version.NOMINATIM_VERSION)
 
 
 ###### Tests for specific migrations
index f5e8f3de0c83c329fce8e2d83a4ecbea0a84ed33..febb2271da289a76266fab6b5443f95df871a6a8 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for functions to maintain the artificial postcode table.
@@ -11,8 +11,8 @@ import subprocess
 
 import pytest
 
-from nominatim.tools import postcodes
-from nominatim.data import country_info
+from nominatim_db.tools import postcodes
+from nominatim_db.data import country_info
 import dummy_tokenizer
 
 class MockPostcodeTable:
index f7621ab180f54d2733184076ff805eb59a9c5799..50ff6398b5673cdc073b4d4c62af6831729f4def 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Test for various refresh functions.
@@ -11,7 +11,7 @@ from pathlib import Path
 
 import pytest
 
-from nominatim.tools import refresh
+from nominatim_db.tools import refresh
 
 def test_refresh_import_wikipedia_not_existing(dsn):
     assert refresh.import_wikipedia_articles(dsn, Path('.')) == 1
index e35a81901df497c093531bab20b1a167327ec3db..6e094cdc1c0e03ad5e138bffc18412039acfd07a 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for function for importing address ranks.
@@ -12,7 +12,7 @@ from pathlib import Path
 
 import pytest
 
-from nominatim.tools.refresh import load_address_levels, load_address_levels_from_config
+from nominatim_db.tools.refresh import load_address_levels, load_address_levels_from_config
 
 def test_load_ranks_def_config(temp_db_conn, temp_db_cursor, def_config):
     load_address_levels_from_config(temp_db_conn, def_config)
index 8d26e7554dd6d1613621133485226dad0015037d..984a161016fecd8f594a00d8a0b7b80010b708a5 100644 (file)
@@ -1,15 +1,15 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# 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
 
 class TestCreateFunctions:
     @pytest.fixture(autouse=True)
index 52b857c43ada7a536c689d1937c56142beefc7d9..fe29dd5243ff751ac11d9046416f12bf993e95ee 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for setting up the website scripts.
@@ -11,7 +11,7 @@ import subprocess
 
 import pytest
 
-from nominatim.tools import refresh
+from nominatim_db.tools import refresh
 
 @pytest.fixture
 def test_script(tmp_path):
index 7a7340ae41125f52bf7857ec24d06d3a6e50a4dc..4cd53ae3aa24a62b8330129fedf14a4cae23c815 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for replication functionality.
@@ -13,9 +13,9 @@ import time
 import pytest
 from osmium.replication.server import OsmosisState
 
-import nominatim.tools.replication
-import nominatim.db.status as status
-from nominatim.errors import UsageError
+import nominatim_db.tools.replication
+import nominatim_core.db.status as status
+from nominatim_core.errors import UsageError
 
 OSM_NODE_DATA = """\
 <osm version="0.6" generator="OpenStreetMap server" copyright="OpenStreetMap and contributors" attribution="http://www.openstreetmap.org/copyright" license="http://opendatacommons.org/licenses/odbl/1-0/">
@@ -33,21 +33,21 @@ def setup_status_table(status_table):
 def test_init_replication_bad_base_url(monkeypatch, place_row, temp_db_conn):
     place_row(osm_type='N', osm_id=100)
 
-    monkeypatch.setattr(nominatim.db.status, "get_url", lambda u: OSM_NODE_DATA)
+    monkeypatch.setattr(status, "get_url", lambda u: OSM_NODE_DATA)
 
     with pytest.raises(UsageError, match="Failed to reach replication service"):
-        nominatim.tools.replication.init_replication(temp_db_conn, 'https://test.io')
+        nominatim_db.tools.replication.init_replication(temp_db_conn, 'https://test.io')
 
 
 def test_init_replication_success(monkeypatch, place_row, temp_db_conn, temp_db_cursor):
     place_row(osm_type='N', osm_id=100)
 
-    monkeypatch.setattr(nominatim.db.status, "get_url", lambda u: OSM_NODE_DATA)
-    monkeypatch.setattr(nominatim.tools.replication.ReplicationServer,
+    monkeypatch.setattr(status, "get_url", lambda u: OSM_NODE_DATA)
+    monkeypatch.setattr(nominatim_db.tools.replication.ReplicationServer,
                         "timestamp_to_sequence",
                         lambda self, date: 234)
 
-    nominatim.tools.replication.init_replication(temp_db_conn, 'https://test.io')
+    nominatim_db.tools.replication.init_replication(temp_db_conn, 'https://test.io')
 
     expected_date = dt.datetime.strptime('2006-01-27T19:09:10', status.ISODATE_FORMAT)\
                         .replace(tzinfo=dt.timezone.utc)
@@ -59,22 +59,22 @@ def test_init_replication_success(monkeypatch, place_row, temp_db_conn, temp_db_
 ### checking for updates
 
 def test_check_for_updates_empty_status_table(temp_db_conn):
-    assert nominatim.tools.replication.check_for_updates(temp_db_conn, 'https://test.io') == 254
+    assert nominatim_db.tools.replication.check_for_updates(temp_db_conn, 'https://test.io') == 254
 
 
 def test_check_for_updates_seq_not_set(temp_db_conn):
     status.set_status(temp_db_conn, dt.datetime.now(dt.timezone.utc))
 
-    assert nominatim.tools.replication.check_for_updates(temp_db_conn, 'https://test.io') == 254
+    assert nominatim_db.tools.replication.check_for_updates(temp_db_conn, 'https://test.io') == 254
 
 
 def test_check_for_updates_no_state(monkeypatch, temp_db_conn):
     status.set_status(temp_db_conn, dt.datetime.now(dt.timezone.utc), seq=345)
 
-    monkeypatch.setattr(nominatim.tools.replication.ReplicationServer,
+    monkeypatch.setattr(nominatim_db.tools.replication.ReplicationServer,
                         "get_state_info", lambda self: None)
 
-    assert nominatim.tools.replication.check_for_updates(temp_db_conn, 'https://test.io') == 253
+    assert nominatim_db.tools.replication.check_for_updates(temp_db_conn, 'https://test.io') == 253
 
 
 @pytest.mark.parametrize("server_sequence,result", [(344, 2), (345, 2), (346, 0)])
@@ -83,11 +83,11 @@ def test_check_for_updates_no_new_data(monkeypatch, temp_db_conn,
     date = dt.datetime.now(dt.timezone.utc)
     status.set_status(temp_db_conn, date, seq=345)
 
-    monkeypatch.setattr(nominatim.tools.replication.ReplicationServer,
+    monkeypatch.setattr(nominatim_db.tools.replication.ReplicationServer,
                         "get_state_info",
                         lambda self: OsmosisState(server_sequence, date))
 
-    assert nominatim.tools.replication.check_for_updates(temp_db_conn, 'https://test.io') == result
+    assert nominatim_db.tools.replication.check_for_updates(temp_db_conn, 'https://test.io') == result
 
 
 ### updating
@@ -102,29 +102,29 @@ def update_options(tmpdir):
 
 def test_update_empty_status_table(dsn):
     with pytest.raises(UsageError):
-        nominatim.tools.replication.update(dsn, {})
+        nominatim_db.tools.replication.update(dsn, {})
 
 
 def test_update_already_indexed(temp_db_conn, dsn):
     status.set_status(temp_db_conn, dt.datetime.now(dt.timezone.utc), seq=34, indexed=False)
 
-    assert nominatim.tools.replication.update(dsn, dict(indexed_only=True)) \
-             == nominatim.tools.replication.UpdateState.MORE_PENDING
+    assert nominatim_db.tools.replication.update(dsn, dict(indexed_only=True)) \
+             == nominatim_db.tools.replication.UpdateState.MORE_PENDING
 
 
 def test_update_no_data_no_sleep(monkeypatch, temp_db_conn, dsn, update_options):
     date = dt.datetime.now(dt.timezone.utc) - dt.timedelta(days=1)
     status.set_status(temp_db_conn, date, seq=34)
 
-    monkeypatch.setattr(nominatim.tools.replication.ReplicationServer,
+    monkeypatch.setattr(nominatim_db.tools.replication.ReplicationServer,
                         "apply_diffs",
                         lambda *args, **kwargs: None)
 
     sleeptime = []
     monkeypatch.setattr(time, 'sleep', sleeptime.append)
 
-    assert nominatim.tools.replication.update(dsn, update_options) \
-             == nominatim.tools.replication.UpdateState.NO_CHANGES
+    assert nominatim_db.tools.replication.update(dsn, update_options) \
+             == nominatim_db.tools.replication.UpdateState.NO_CHANGES
 
     assert not sleeptime
 
@@ -133,15 +133,15 @@ def test_update_no_data_sleep(monkeypatch, temp_db_conn, dsn, update_options):
     date = dt.datetime.now(dt.timezone.utc) - dt.timedelta(minutes=30)
     status.set_status(temp_db_conn, date, seq=34)
 
-    monkeypatch.setattr(nominatim.tools.replication.ReplicationServer,
+    monkeypatch.setattr(nominatim_db.tools.replication.ReplicationServer,
                         "apply_diffs",
                         lambda *args, **kwargs: None)
 
     sleeptime = []
     monkeypatch.setattr(time, 'sleep', sleeptime.append)
 
-    assert nominatim.tools.replication.update(dsn, update_options) \
-             == nominatim.tools.replication.UpdateState.NO_CHANGES
+    assert nominatim_db.tools.replication.update(dsn, update_options) \
+             == nominatim_db.tools.replication.UpdateState.NO_CHANGES
 
     assert len(sleeptime) == 1
     assert sleeptime[0] < 3600
index 49d5a85340a8a58cf70d74579cb7f75c7bfdc8df..e6185fd61a0698fc36dafddc723eee23ac6af906 100644 (file)
@@ -1,17 +1,17 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
     Tests for methods of the SPCsvLoader class.
 """
 import pytest
 
-from nominatim.errors import UsageError
-from nominatim.tools.special_phrases.sp_csv_loader import SPCsvLoader
-from nominatim.tools.special_phrases.special_phrase import SpecialPhrase
+from nominatim_core.errors import UsageError
+from nominatim_db.tools.special_phrases.sp_csv_loader import SPCsvLoader
+from nominatim_db.tools.special_phrases.special_phrase import SpecialPhrase
 
 @pytest.fixture
 def sp_csv_loader(src_dir):
index 2f47734e079b988519a997f4f10cbbfccd7000a3..5c37c32f42eb2eec91c3043096bf255c5db3ce58 100644 (file)
@@ -1,14 +1,14 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
     Tests for methods of the SPWikiLoader class.
 """
 import pytest
-from nominatim.tools.special_phrases.sp_wiki_loader import SPWikiLoader
+from nominatim_db.tools.special_phrases.sp_wiki_loader import SPWikiLoader
 
 
 @pytest.fixture
@@ -23,7 +23,7 @@ def sp_wiki_loader(src_dir, monkeypatch, def_config):
         xml_test_content = src_dir / 'test' / 'testdata' / 'special_phrases_test_content.txt'
         return xml_test_content.read_text()
 
-    monkeypatch.setattr('nominatim.tools.special_phrases.sp_wiki_loader._get_wiki_content',
+    monkeypatch.setattr('nominatim_db.tools.special_phrases.sp_wiki_loader._get_wiki_content',
                         _mock_wiki_content)
     return loader
 
index 4b1a1b8959b43eca48d8c72f9578cc3f7b01f811..396fe069f012a10a436e57bbf4640c08381bb783 100644 (file)
@@ -1,8 +1,8 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Test for tiger data function
@@ -12,8 +12,8 @@ from textwrap import dedent
 
 import pytest
 
-from nominatim.tools import tiger_data, freeze
-from nominatim.errors import UsageError
+from nominatim_db.tools import tiger_data, freeze
+from nominatim_core.errors import UsageError
 
 class MockTigerTable:
 
index 63d967e756a2fc4c8f5a6cd387831e43425800c8..d91edae2d44c5a85aaf39f71f10a3cac0a9fc207 100644 (file)
@@ -1,15 +1,15 @@
-# SPDX-License-Identifier: GPL-2.0-only
+# SPDX-License-Identifier: GPL-3.0-or-later
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2022 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for centroid computation.
 """
 import pytest
 
-from nominatim.utils.centroid import PointsCentroid
+from nominatim_core.utils.centroid import PointsCentroid
 
 def test_empty_set():
     c = PointsCentroid()
index 08a091f49e1ce926894a59863d7a8a0058cb68b4..ff542f045e236e6a7ce964df1042ed9f616bfedd 100644 (file)
@@ -2,7 +2,7 @@
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2023 by the Nominatim developer community.
+# Copyright (C) 2024 by the Nominatim developer community.
 # For a full list of authors see the git log.
 """
 Tests for the streaming JSON writer.
@@ -11,7 +11,7 @@ import json
 
 import pytest
 
-from nominatim.utils.json_writer import JsonWriter
+from nominatim_core.utils.json_writer import JsonWriter
 
 @pytest.mark.parametrize("inval,outstr", [(None, 'null'),
                                           (True, 'true'), (False, 'false'),