]> git.openstreetmap.org Git - nominatim.git/blob - test/python/api/search/test_query_analyzer_factory.py
enable flake for Python tests
[nominatim.git] / test / python / api / search / test_query_analyzer_factory.py
1 # SPDX-License-Identifier: GPL-3.0-or-later
2 #
3 # This file is part of Nominatim. (https://nominatim.org)
4 #
5 # Copyright (C) 2025 by the Nominatim developer community.
6 # For a full list of authors see the git log.
7 """
8 Tests for query analyzer creation.
9 """
10 import pytest
11
12 from nominatim_api.search.query_analyzer_factory import make_query_analyzer
13 from nominatim_api.search.icu_tokenizer import ICUQueryAnalyzer
14
15
16 @pytest.mark.asyncio
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/'; 'ä' > 'ä '")))
23
24     async with api.begin() as conn:
25         ana = await make_query_analyzer(conn)
26
27         assert isinstance(ana, ICUQueryAnalyzer)
28
29
30 @pytest.mark.asyncio
31 async def test_import_missing_property(table_factory, api):
32     table_factory('nominatim_properties',
33                   definition='property TEXT, value TEXT')
34
35     async with api.begin() as conn:
36         with pytest.raises(ValueError, match='Property.*not found'):
37             await make_query_analyzer(conn)
38
39
40 @pytest.mark.asyncio
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'),))
45
46     async with api.begin() as conn:
47         with pytest.raises(RuntimeError, match='Tokenizer not found'):
48             await make_query_analyzer(conn)