mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-14 18:37:58 +00:00
Merge pull request #3101 from lonvia/custom-geometry-type
Improve use of SQLAlchemy statement cache with search queries
This commit is contained in:
@@ -66,11 +66,11 @@ class APITester:
|
||||
'rank_search': kw.get('rank_search', 30),
|
||||
'rank_address': kw.get('rank_address', 30),
|
||||
'importance': kw.get('importance'),
|
||||
'centroid': 'SRID=4326;POINT(%f %f)' % centroid,
|
||||
'centroid': 'POINT(%f %f)' % centroid,
|
||||
'indexed_status': kw.get('indexed_status', 0),
|
||||
'indexed_date': kw.get('indexed_date',
|
||||
dt.datetime(2022, 12, 7, 14, 14, 46, 0)),
|
||||
'geometry': 'SRID=4326;' + geometry})
|
||||
'geometry': geometry})
|
||||
|
||||
|
||||
def add_address_placex(self, object_id, **kw):
|
||||
@@ -97,7 +97,7 @@ class APITester:
|
||||
'address': kw.get('address'),
|
||||
'postcode': kw.get('postcode'),
|
||||
'country_code': kw.get('country_code'),
|
||||
'linegeo': 'SRID=4326;' + kw.get('geometry', 'LINESTRING(1.1 -0.2, 1.09 -0.22)')})
|
||||
'linegeo': kw.get('geometry', 'LINESTRING(1.1 -0.2, 1.09 -0.22)')})
|
||||
|
||||
|
||||
def add_tiger(self, **kw):
|
||||
@@ -108,7 +108,7 @@ class APITester:
|
||||
'endnumber': kw.get('endnumber', 6),
|
||||
'step': kw.get('step', 2),
|
||||
'postcode': kw.get('postcode'),
|
||||
'linegeo': 'SRID=4326;' + kw.get('geometry', 'LINESTRING(1.1 -0.2, 1.09 -0.22)')})
|
||||
'linegeo': kw.get('geometry', 'LINESTRING(1.1 -0.2, 1.09 -0.22)')})
|
||||
|
||||
|
||||
def add_postcode(self, **kw):
|
||||
@@ -121,14 +121,14 @@ class APITester:
|
||||
'rank_address': kw.get('rank_address', 22),
|
||||
'indexed_date': kw.get('indexed_date',
|
||||
dt.datetime(2022, 12, 7, 14, 14, 46, 0)),
|
||||
'geometry': 'SRID=4326;' + kw.get('geometry', 'POINT(23 34)')})
|
||||
'geometry': kw.get('geometry', 'POINT(23 34)')})
|
||||
|
||||
|
||||
def add_country(self, country_code, geometry):
|
||||
self.add_data('country_grid',
|
||||
{'country_code': country_code,
|
||||
'area': 0.1,
|
||||
'geometry': 'SRID=4326;' + geometry})
|
||||
'geometry': geometry})
|
||||
|
||||
|
||||
def add_country_name(self, country_code, names, partition=0):
|
||||
@@ -148,7 +148,7 @@ class APITester:
|
||||
'name_vector': kw.get('names', []),
|
||||
'nameaddress_vector': kw.get('address', []),
|
||||
'country_code': kw.get('country_code', 'xx'),
|
||||
'centroid': 'SRID=4326;POINT(%f %f)' % centroid})
|
||||
'centroid': 'POINT(%f %f)' % centroid})
|
||||
|
||||
|
||||
def add_class_type_table(self, cls, typ):
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
Tests for result datatype helper functions.
|
||||
"""
|
||||
import struct
|
||||
from binascii import hexlify
|
||||
|
||||
import pytest
|
||||
import pytest_asyncio
|
||||
@@ -17,10 +18,8 @@ import sqlalchemy as sa
|
||||
from nominatim.api import SourceTable, DetailedResult, Point
|
||||
import nominatim.api.results as nresults
|
||||
|
||||
class FakeCentroid:
|
||||
def __init__(self, x, y):
|
||||
self.data = struct.pack("=biidd", 1, 0x20000001, 4326,
|
||||
x, y)
|
||||
def mkpoint(x, y):
|
||||
return hexlify(struct.pack("=biidd", 1, 0x20000001, 4326, x, y)).decode('utf-8')
|
||||
|
||||
class FakeRow:
|
||||
def __init__(self, **kwargs):
|
||||
@@ -60,7 +59,7 @@ def test_create_row_none(func):
|
||||
def test_create_row_with_housenumber(func):
|
||||
row = FakeRow(place_id=2345, osm_type='W', osm_id=111, housenumber=4,
|
||||
address=None, postcode='99900', country_code='xd',
|
||||
centroid=FakeCentroid(0, 0))
|
||||
centroid=mkpoint(0, 0))
|
||||
|
||||
res = func(row, DetailedResult)
|
||||
|
||||
@@ -75,7 +74,7 @@ def test_create_row_without_housenumber(func):
|
||||
row = FakeRow(place_id=2345, osm_type='W', osm_id=111,
|
||||
startnumber=1, endnumber=11, step=2,
|
||||
address=None, postcode='99900', country_code='xd',
|
||||
centroid=FakeCentroid(0, 0))
|
||||
centroid=mkpoint(0, 0))
|
||||
|
||||
res = func(row, DetailedResult)
|
||||
|
||||
|
||||
@@ -71,20 +71,6 @@ def test_already_at_version(def_config, property_table):
|
||||
assert migration.migrate(def_config, {}) == 0
|
||||
|
||||
|
||||
def test_no_migrations_necessary(def_config, temp_db_cursor, property_table,
|
||||
monkeypatch):
|
||||
oldversion = [x for x in nominatim.version.NOMINATIM_VERSION]
|
||||
oldversion[0] -= 1
|
||||
property_table.set('database_version',
|
||||
'{0[0]}.{0[1]}.{0[2]}-{0[3]}'.format(oldversion))
|
||||
|
||||
oldversion[0] = 0
|
||||
monkeypatch.setattr(migration, '_MIGRATION_FUNCTIONS',
|
||||
[(tuple(oldversion), lambda **attr: True)])
|
||||
|
||||
assert migration.migrate(def_config, {}) == 0
|
||||
|
||||
|
||||
def test_run_single_migration(def_config, temp_db_cursor, property_table,
|
||||
monkeypatch, postprocess_mock):
|
||||
oldversion = [x for x in nominatim.version.NOMINATIM_VERSION]
|
||||
|
||||
Reference in New Issue
Block a user