Tests for function for importing address ranks.
"""
import json
-import pytest
from pathlib import Path
-from nominatim.tools.refresh import load_address_levels, load_address_levels_from_file
+import pytest
+
+from nominatim.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_file(temp_db_conn, Path(def_config.ADDRESS_LEVEL_CONFIG))
+ load_address_levels_from_config(temp_db_conn, def_config)
- assert temp_db_cursor.scalar('SELECT count(*) FROM address_levels') > 0
+ assert temp_db_cursor.table_rows('address_levels') > 0
-def test_load_ranks_from_file(temp_db_conn, temp_db_cursor, tmp_path):
- test_file = tmp_path / 'test_levels.json'
+def test_load_ranks_from_project_dir(def_config, temp_db_conn, temp_db_cursor,
+ tmp_path):
+ test_file = tmp_path / 'address-levels.json'
test_file.write_text('[{"tags":{"place":{"sea":2}}}]')
+ def_config.project_dir = tmp_path
- load_address_levels_from_file(temp_db_conn, test_file)
+ load_address_levels_from_config(temp_db_conn, def_config)
- assert temp_db_cursor.scalar('SELECT count(*) FROM address_levels') > 0
+ assert temp_db_cursor.table_rows('address_levels') == 1
-def test_load_ranks_from_broken_file(temp_db_conn, tmp_path):
- test_file = tmp_path / 'test_levels.json'
+def test_load_ranks_from_broken_file(def_config, temp_db_conn, tmp_path):
+ test_file = tmp_path / 'address-levels.json'
test_file.write_text('[{"tags":"place":{"sea":2}}}]')
+ def_config.project_dir = tmp_path
with pytest.raises(json.decoder.JSONDecodeError):
- load_address_levels_from_file(temp_db_conn, test_file)
+ load_address_levels_from_config(temp_db_conn, def_config)
def test_load_ranks_country(temp_db_conn, temp_db_cursor):
[{"tags": {"place": {"village": 14}}},
{"countries": ['de'],
"tags": {"place": {"village": 15}}},
- {"countries": ['uk', 'us' ],
+ {"countries": ['uk', 'us'],
"tags": {"place": {"village": 16}}}
])
def test_load_ranks_multiple_keys(temp_db_conn, temp_db_cursor):
load_address_levels(temp_db_conn, 'levels',
- [{"tags":
- {"place": {"city": 14},
- "boundary": {"administrative2" : 4}}
+ [{"tags": {"place": {"city": 14},
+ "boundary": {"administrative2" : 4}}
}])
assert temp_db_cursor.row_set('SELECT * FROM levels') == \
def test_load_ranks_address(temp_db_conn, temp_db_cursor):
load_address_levels(temp_db_conn, 'levels',
- [{"tags":
- {"place": {"city": 14,
- "town" : [14, 13]}}
+ [{"tags": {"place": {"city": 14,
+ "town" : [14, 13]}}
}])
assert temp_db_cursor.row_set('SELECT * FROM levels') == \