reduce from 3 to 2 packages

This commit is contained in:
Sarah Hoffmann
2024-06-27 21:26:12 +02:00
parent 139cea5720
commit 4da4cbfe27
149 changed files with 419 additions and 422 deletions

View File

@@ -15,7 +15,7 @@ import datetime as dt
import sqlalchemy as sa
import nominatim_api as napi
from nominatim_core.db.sql_preprocessor import SQLPreprocessor
from nominatim_db.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

View File

@@ -10,7 +10,7 @@ Provides dummy implementations of ASGIAdaptor for testing.
from collections import namedtuple
import nominatim_api.v1.server_glue as glue
from nominatim_core.config import Configuration
from nominatim_api.config import Configuration
class FakeError(BaseException):

View File

@@ -39,7 +39,7 @@ def test_status_full(apiobj, frontend):
assert result.status == 0
assert result.message == 'OK'
assert result.software_version == NOMINATIM_API_VERSION
assert result.database_version == NominatimVersion(99, 5, 4, 2)
assert result.database_version == '99.5.4-2'
assert result.data_updated == import_date

View File

@@ -9,7 +9,7 @@ Tests for loading of parameter dataclasses.
"""
import pytest
from nominatim_core.errors import UsageError
from nominatim_api.errors import UsageError
import nominatim_api.types as typ
def test_no_params_defaults():

View File

@@ -14,7 +14,7 @@ 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
import nominatim_db.db.properties
class TestCliImportWithDb:
@@ -81,7 +81,7 @@ class TestCliImportWithDb:
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')
mock_func_factory(nominatim_db.db.properties, 'set_property')
]
assert self.call_nominatim('import', '--continue', 'load-data') == 0
@@ -98,7 +98,7 @@ class TestCliImportWithDb:
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')
mock_func_factory(nominatim_db.db.properties, 'set_property')
]
assert self.call_nominatim('import', '--continue', 'indexing') == 0
@@ -115,7 +115,7 @@ class TestCliImportWithDb:
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')
mock_func_factory(nominatim_db.db.properties, 'set_property')
]
assert self.call_nominatim('import', '--continue', 'db-postprocess') == 0

View File

@@ -16,7 +16,7 @@ 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
from nominatim_db.db import status
@pytest.fixture
def tokenizer_mock(monkeypatch):

View File

@@ -10,8 +10,8 @@ Test for loading dotenv configuration.
from pathlib import Path
import pytest
from nominatim_core.config import Configuration, flatten_config_list
from nominatim_core.errors import UsageError
from nominatim_db.config import Configuration, flatten_config_list
from nominatim_db.errors import UsageError
@pytest.fixture
def make_config():

View File

@@ -12,7 +12,7 @@ import sys
import pytest
from nominatim_core.config import Configuration
from nominatim_db.config import Configuration
@pytest.fixture
def test_config(src_dir, tmp_path):

View File

@@ -15,9 +15,9 @@ import pytest
SRC_DIR = (Path(__file__) / '..' / '..' / '..').resolve()
sys.path.insert(0, str(SRC_DIR / 'src'))
from nominatim_core.config import Configuration
from nominatim_core.db import connection
from nominatim_core.db.sql_preprocessor import SQLPreprocessor
from nominatim_db.config import Configuration
from nominatim_db.db import connection
from nominatim_db.db.sql_preprocessor import SQLPreprocessor
import nominatim_db.tokenizer.factory
import dummy_tokenizer

View File

@@ -13,7 +13,7 @@ import concurrent.futures
import pytest
import psycopg2
from nominatim_core.db.async_connection import DBConnection, DeadlockHandler
from nominatim_db.db.async_connection import DBConnection, DeadlockHandler
@pytest.fixture

View File

@@ -10,7 +10,7 @@ Tests for specialised connection and cursor classes.
import pytest
import psycopg2
from nominatim_core.db.connection import connect, get_pg_env
from nominatim_db.db.connection import connect, get_pg_env
@pytest.fixture
def db(dsn):

View File

@@ -9,7 +9,7 @@ Tests for property table manpulation.
"""
import pytest
from nominatim_core.db import properties
from nominatim_db.db import properties
@pytest.fixture
def property_factory(property_table, temp_db_cursor):

View File

@@ -9,7 +9,7 @@ Tests for SQL preprocessing.
"""
import pytest
from nominatim_core.db.sql_preprocessor import SQLPreprocessor
from nominatim_db.db.sql_preprocessor import SQLPreprocessor
@pytest.fixture
def sql_factory(tmp_path):

View File

@@ -11,8 +11,8 @@ import datetime as dt
import pytest
import nominatim_core.db.status
from nominatim_core.errors import UsageError
import nominatim_db.db.status
from nominatim_db.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_core.db.status.ISODATE_FORMAT)\
return dt.datetime.strptime(date, nominatim_db.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_core.db.status.compute_database_date(temp_db_conn, offline=offline)
date = nominatim_db.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_core.db.status.compute_database_date(temp_db_conn, offline=True)
nominatim_db.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_core.db.status.compute_database_date(temp_db_conn)
nominatim_db.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_core.db.status, "get_url", mock_url)
monkeypatch.setattr(nominatim_db.db.status, "get_url", mock_url)
date = nominatim_core.db.status.compute_database_date(temp_db_conn)
date = nominatim_db.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_core.db.status, "get_url", mock_url)
monkeypatch.setattr(nominatim_db.db.status, "get_url", mock_url)
with pytest.raises(UsageError):
nominatim_core.db.status.compute_database_date(temp_db_conn)
nominatim_db.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_core.db.status.set_status(temp_db_conn, date=date)
nominatim_db.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_core.db.status.set_status(temp_db_conn, date=date)
nominatim_db.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_core.db.status.set_status(temp_db_conn, date=date, seq=456, indexed=False)
nominatim_db.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_core.db.status.set_status(temp_db_conn, date=date)
nominatim_db.db.status.set_status(temp_db_conn, date=date)
assert temp_db_cursor.table_rows('import_status') == 1
nominatim_core.db.status.set_status(temp_db_conn, date=None, seq=456, indexed=False)
nominatim_db.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_core.db.status.get_status(temp_db_conn) == (None, None, None)
assert nominatim_db.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_core.db.status.set_status(temp_db_conn, date=date, seq=667, indexed=False)
nominatim_db.db.status.set_status(temp_db_conn, date=date, seq=667, indexed=False)
assert nominatim_core.db.status.get_status(temp_db_conn) == \
assert nominatim_db.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_core.db.status.set_status(temp_db_conn, date=date, indexed=old_state)
nominatim_core.db.status.set_indexed(temp_db_conn, new_state)
nominatim_db.db.status.set_status(temp_db_conn, date=date, indexed=old_state)
nominatim_db.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_core.db.status.set_indexed(temp_db_conn, True)
nominatim_db.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_core.db.status.set_status(temp_db_conn, date=date, seq=56)
nominatim_core.db.status.log_status(temp_db_conn, start, 'index')
nominatim_db.db.status.set_status(temp_db_conn, date=date, seq=56)
nominatim_db.db.status.log_status(temp_db_conn, start, 'index')
temp_db_conn.commit()

View File

@@ -11,8 +11,8 @@ import json
import pytest
import nominatim_core.db.utils as db_utils
from nominatim_core.errors import UsageError
import nominatim_db.db.utils as db_utils
from nominatim_db.errors import UsageError
def test_execute_file_success(dsn, temp_db_cursor, tmp_path):
tmpfile = tmp_path / 'test.sql'

View File

@@ -8,7 +8,7 @@
Tokenizer for testing.
"""
from nominatim_db.data.place_info import PlaceInfo
from nominatim_core.config import Configuration
from nominatim_db.config import Configuration
def create(dsn, data_dir):
""" Create a new instance of the tokenizer provided by this module.

View File

@@ -11,7 +11,7 @@ import itertools
import psycopg2.extras
from nominatim_core.db import properties
from nominatim_db.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

View File

@@ -9,7 +9,7 @@ Tests for sanitizer configuration helper functions.
"""
import pytest
from nominatim_core.errors import UsageError
from nominatim_db.errors import UsageError
from nominatim_db.tokenizer.sanitizers.config import SanitizerConfig
def test_string_list_default_empty():

View File

@@ -12,7 +12,7 @@ import pytest
from nominatim_db.tokenizer.place_sanitizer import PlaceSanitizer
from nominatim_db.data.place_info import PlaceInfo
from nominatim_core.errors import UsageError
from nominatim_db.errors import UsageError
class TestSplitName:

View File

@@ -9,9 +9,9 @@ Tests for creating new tokenizers.
"""
import pytest
from nominatim_core.db import properties
from nominatim_db.db import properties
from nominatim_db.tokenizer import factory
from nominatim_core.errors import UsageError
from nominatim_db.errors import UsageError
from dummy_tokenizer import DummyTokenizer

View File

@@ -14,8 +14,8 @@ import pytest
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.db import properties
from nominatim_db.db.sql_preprocessor import SQLPreprocessor
from nominatim_db.data.place_info import PlaceInfo
from mock_icu_word_table import MockIcuWordTable

View File

@@ -13,7 +13,7 @@ import pytest
import yaml
from nominatim_db.tokenizer.icu_rule_loader import ICURuleLoader
from nominatim_core.errors import UsageError
from nominatim_db.errors import UsageError
from icu import Transliterator

View File

@@ -14,8 +14,8 @@ import pytest
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 nominatim_db.db import properties
from nominatim_db.errors import UsageError
from mock_legacy_word_table import MockLegacyWordTable

View File

@@ -9,7 +9,7 @@ Tests for execution of the sanitztion step.
"""
import pytest
from nominatim_core.errors import UsageError
from nominatim_db.errors import UsageError
import nominatim_db.tokenizer.place_sanitizer as sanitizer
from nominatim_db.data.place_info import PlaceInfo

View File

@@ -13,7 +13,7 @@ from icu import Transliterator
import nominatim_db.tokenizer.token_analysis.postcodes as module
from nominatim_db.data.place_name import PlaceName
from nominatim_core.errors import UsageError
from nominatim_db.errors import UsageError
DEFAULT_NORMALIZATION = """ :: NFD ();
'🜳' > ' ';

View File

@@ -12,7 +12,7 @@ import pytest
from icu import Transliterator
import nominatim_db.tokenizer.token_analysis.generic as module
from nominatim_core.errors import UsageError
from nominatim_db.errors import UsageError
DEFAULT_NORMALIZATION = """ :: NFD ();
'🜳' > ' ';

View File

@@ -12,7 +12,7 @@ import pytest
from icu import Transliterator
import nominatim_db.tokenizer.token_analysis.generic as module
from nominatim_core.errors import UsageError
from nominatim_db.errors import UsageError
DEFAULT_NORMALIZATION = """ '🜳' > ' ';
[[:Nonspacing Mark:] [:Cf:]] >;

View File

@@ -9,10 +9,10 @@ Tests for maintenance and analysis functions.
"""
import pytest
from nominatim_core.errors import UsageError
from nominatim_db.errors import UsageError
from nominatim_db.tools import admin
from nominatim_db.tokenizer import factory
from nominatim_core.db.sql_preprocessor import SQLPreprocessor
from nominatim_db.db.sql_preprocessor import SQLPreprocessor
@pytest.fixture(autouse=True)
def create_placex_table(project_env, tokenizer_mock, temp_db_cursor, placex_table):

View File

@@ -14,7 +14,7 @@ import pytest
import psycopg2
from nominatim_db.tools import database_import
from nominatim_core.errors import UsageError
from nominatim_db.errors import UsageError
class TestDatabaseSetup:
DBNAME = 'test_nominatim_python_unittest'

View File

@@ -12,7 +12,7 @@ import subprocess
import pytest
from nominatim_core.config import Configuration
from nominatim_db.config import Configuration
import nominatim_db.tools.exec_utils as exec_utils
def test_run_osm2pgsql(osm2pgsql_options):

View File

@@ -13,7 +13,7 @@ import pytest
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 nominatim_db.errors import UsageError
from cursor import CursorForTesting

View File

@@ -11,7 +11,7 @@ import pytest
import psycopg2.extras
from nominatim_db.tools import migration
from nominatim_core.errors import UsageError
from nominatim_db.errors import UsageError
import nominatim_db.version
from mock_legacy_word_table import MockLegacyWordTable

View File

@@ -14,8 +14,8 @@ import pytest
from osmium.replication.server import OsmosisState
import nominatim_db.tools.replication
import nominatim_core.db.status as status
from nominatim_core.errors import UsageError
import nominatim_db.db.status as status
from nominatim_db.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/">

View File

@@ -9,7 +9,7 @@
"""
import pytest
from nominatim_core.errors import UsageError
from nominatim_db.errors import UsageError
from nominatim_db.tools.special_phrases.sp_csv_loader import SPCsvLoader
from nominatim_db.tools.special_phrases.special_phrase import SpecialPhrase

View File

@@ -13,7 +13,7 @@ from textwrap import dedent
import pytest
from nominatim_db.tools import tiger_data, freeze
from nominatim_core.errors import UsageError
from nominatim_db.errors import UsageError
class MockTigerTable:

View File

@@ -9,7 +9,7 @@ Tests for centroid computation.
"""
import pytest
from nominatim_core.utils.centroid import PointsCentroid
from nominatim_db.utils.centroid import PointsCentroid
def test_empty_set():
c = PointsCentroid()

View File

@@ -11,7 +11,7 @@ import json
import pytest
from nominatim_core.utils.json_writer import JsonWriter
from nominatim_api.utils.json_writer import JsonWriter
@pytest.mark.parametrize("inval,outstr", [(None, 'null'),
(True, 'true'), (False, 'false'),