1 # SPDX-License-Identifier: GPL-3.0-or-later
3 # This file is part of Nominatim. (https://nominatim.org)
5 # Copyright (C) 2025 by the Nominatim developer community.
6 # For a full list of authors see the git log.
8 Tests for query analyzer creation.
12 from nominatim_api.search.query_analyzer_factory import make_query_analyzer
13 from nominatim_api.search.icu_tokenizer import ICUQueryAnalyzer
17 async def test_import_icu_tokenizer(table_factory, api):
18 table_factory('nominatim_properties',
19 definition='property TEXT, value TEXT',
20 content=(('tokenizer', 'icu'),
21 ('tokenizer_import_normalisation', ':: lower();'),
22 ('tokenizer_import_transliteration', "'1' > '/1/'; 'ä' > 'ä '")))
24 async with api.begin() as conn:
25 ana = await make_query_analyzer(conn)
27 assert isinstance(ana, ICUQueryAnalyzer)
31 async def test_import_missing_property(table_factory, api):
32 table_factory('nominatim_properties',
33 definition='property TEXT, value TEXT')
35 async with api.begin() as conn:
36 with pytest.raises(ValueError, match='Property.*not found'):
37 await make_query_analyzer(conn)
41 async def test_import_missing_module(table_factory, api):
42 table_factory('nominatim_properties',
43 definition='property TEXT, value TEXT',
44 content=(('tokenizer', 'missing'),))
46 async with api.begin() as conn:
47 with pytest.raises(RuntimeError, match='Tokenizer not found'):
48 await make_query_analyzer(conn)