+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of Nominatim. (https://nominatim.org)
+#
+# Copyright (C) 2024 by the Nominatim developer community.
+# For a full list of authors see the git log.
"""
Test for tiger data function
"""
import pytest
-from nominatim.tools import tiger_data
-from nominatim.errors import UsageError
+from nominatim_db.tools import tiger_data, freeze
+from nominatim_db.errors import UsageError
class MockTigerTable:
token_info JSONB,
postcode TEXT)""")
+ # We need this table to determine if the database is frozen or not
+ cur.execute("CREATE TABLE place (number INTEGER)")
+
def count(self):
with self.conn.cursor() as cur:
return cur.scalar("SELECT count(*) FROM tiger")
assert tiger_table.count() == 6213
+def test_add_tiger_data_database_frozen(def_config, temp_db_conn, tiger_table, tokenizer_mock,
+ tmp_path):
+ freeze.drop_update_tables(temp_db_conn)
+
+ with pytest.raises(UsageError) as excinfo:
+ tiger_data.add_tiger_data(str(tmp_path), def_config, 1, tokenizer_mock())
+
+ assert "database frozen" in str(excinfo.value)
+
+ assert tiger_table.count() == 0
+
def test_add_tiger_data_no_files(def_config, tiger_table, tokenizer_mock,
tmp_path):
tiger_data.add_tiger_data(str(tmp_path), def_config, 1, tokenizer_mock())