X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/c314a3092c5b51c7782015f6fa9ac093b46fa174..HEAD:/test/python/mock_icu_word_table.py?ds=inline diff --git a/test/python/mock_icu_word_table.py b/test/python/mock_icu_word_table.py index 5c465e8b..b26025a0 100644 --- a/test/python/mock_icu_word_table.py +++ b/test/python/mock_icu_word_table.py @@ -2,12 +2,14 @@ # # This file is part of Nominatim. (https://nominatim.org) # -# Copyright (C) 2024 by the Nominatim developer community. +# Copyright (C) 2025 by the Nominatim developer community. # For a full list of authors see the git log. """ Legacy word table for testing with functions to prefil and test contents of the table. """ +from nominatim_db.db.connection import execute_scalar + class MockIcuWordTable: """ A word table for testing using legacy word table structure. @@ -30,18 +32,16 @@ class MockIcuWordTable: (word_id, word or word_token, word)) self.conn.commit() - def add_special(self, word_token, word, cls, typ, oper): with self.conn.cursor() as cur: cur.execute("""INSERT INTO word (word_token, type, word, info) VALUES (%s, 'S', %s, - json_build_object('class', %s, - 'type', %s, - 'op', %s)) + json_build_object('class', %s::text, + 'type', %s::text, + 'op', %s::text)) """, (word_token, word, cls, typ, oper)) self.conn.commit() - def add_country(self, country_code, word_token): with self.conn.cursor() as cur: cur.execute("""INSERT INTO word (word_token, type, word) @@ -49,7 +49,6 @@ class MockIcuWordTable: (word_token, country_code)) self.conn.commit() - def add_postcode(self, word_token, postcode): with self.conn.cursor() as cur: cur.execute("""INSERT INTO word (word_token, type, word) @@ -57,7 +56,6 @@ class MockIcuWordTable: """, (word_token, postcode)) self.conn.commit() - def add_housenumber(self, word_id, word_tokens, word=None): with self.conn.cursor() as cur: if isinstance(word_tokens, str): @@ -70,26 +68,20 @@ class MockIcuWordTable: word = word_tokens[0] for token in word_tokens: cur.execute("""INSERT INTO word (word_id, word_token, type, word, info) - VALUES (%s, %s, 'H', %s, jsonb_build_object('lookup', %s)) + VALUES (%s, %s, 'H', %s, + jsonb_build_object('lookup', %s::text)) """, (word_id, token, word, word_tokens[0])) self.conn.commit() - def count(self): - with self.conn.cursor() as cur: - return cur.scalar("SELECT count(*) FROM word") - + return execute_scalar(self.conn, "SELECT count(*) FROM word") def count_special(self): - with self.conn.cursor() as cur: - return cur.scalar("SELECT count(*) FROM word WHERE type = 'S'") - + return execute_scalar(self.conn, "SELECT count(*) FROM word WHERE type = 'S'") def count_housenumbers(self): - with self.conn.cursor() as cur: - return cur.scalar("SELECT count(*) FROM word WHERE type = 'H'") - + return execute_scalar(self.conn, "SELECT count(*) FROM word WHERE type = 'H'") def get_special(self): with self.conn.cursor() as cur: @@ -99,7 +91,6 @@ class MockIcuWordTable: assert len(result) == cur.rowcount, "Word table has duplicates." return result - def get_country(self): with self.conn.cursor() as cur: cur.execute("SELECT word, word_token FROM word WHERE type = 'C'") @@ -107,15 +98,12 @@ class MockIcuWordTable: assert len(result) == cur.rowcount, "Word table has duplicates." return result - def get_postcodes(self): with self.conn.cursor() as cur: cur.execute("SELECT word FROM word WHERE type = 'P'") return set((row[0] for row in cur)) - def get_partial_words(self): with self.conn.cursor() as cur: cur.execute("SELECT word_token, info FROM word WHERE type ='w'") return set(((row[0], row[1]['count']) for row in cur)) -