X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/d4c7bf20a2a36894536ed5c92652c953d7eacb80..732cd27d2e3033c11eca5b51cc2e6204c5737def:/test/python/mocks.py diff --git a/test/python/mocks.py b/test/python/mocks.py index f9faaa93..7f7aaafc 100644 --- a/test/python/mocks.py +++ b/test/python/mocks.py @@ -7,6 +7,9 @@ import psycopg2.extras from nominatim.db import properties +# This must always point to the mock word table for the default tokenizer. +from mock_legacy_word_table import MockLegacyWordTable as MockWordTable + class MockParamCapture: """ Mock that records the parameters with which a function was called as well as the number of calls. @@ -24,88 +27,6 @@ class MockParamCapture: return self.return_value -class MockWordTable: - """ A word table for testing. - """ - def __init__(self, conn): - self.conn = conn - with conn.cursor() as cur: - cur.execute("""CREATE TABLE word (word_id INTEGER, - word_token text, - word text, - class text, - type text, - country_code varchar(2), - search_name_count INTEGER, - operator TEXT)""") - - 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, word, class, type, operator) - VALUES (%s, %s, %s, %s, %s) - """, (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, country_code) VALUES(%s, %s)", - (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, word, class, type) - VALUES (%s, %s, 'place', 'postcode') - """, (word_token, postcode)) - self.conn.commit() - - - def count(self): - with self.conn.cursor() as cur: - return cur.scalar("SELECT count(*) FROM word") - - - def count_special(self): - with self.conn.cursor() as cur: - return cur.scalar("SELECT count(*) FROM word WHERE class != 'place'") - - - def get_special(self): - with self.conn.cursor() as cur: - cur.execute("""SELECT word_token, word, class, type, operator - FROM word WHERE class != 'place'""") - result = set((tuple(row) for row in cur)) - assert len(result) == cur.rowcount, "Word table has duplicates." - return result - - - def get_country(self): - with self.conn.cursor() as cur: - cur.execute("""SELECT country_code, word_token - FROM word WHERE country_code is not null""") - result = set((tuple(row) for row in cur)) - 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 class = 'place' and type = 'postcode'""") - return set((row[0] for row in cur)) - - def get_partial_words(self): - with self.conn.cursor() as cur: - cur.execute("""SELECT word_token, search_name_count FROM word - WHERE class is null and country_code is null - and not word_token like ' %'""") - return set((tuple(row) for row in cur)) - - class MockPlacexTable: """ A placex table for testing. """