]> git.openstreetmap.org Git - nominatim.git/blobdiff - test/python/test_tokenizer_legacy.py
Added --no-replace command for special phrases importation and added corresponding...
[nominatim.git] / test / python / test_tokenizer_legacy.py
index 58bf5a5edef13a7cb9554f8892686c15990668f7..801471723c4b72b5be4c4f6938c188b059639408 100644 (file)
@@ -35,7 +35,7 @@ def test_config(def_config, tmp_path):
 
 
 @pytest.fixture
-def tokenizer_factory(dsn, tmp_path, monkeypatch, property_table):
+def tokenizer_factory(dsn, tmp_path, property_table):
     (tmp_path / 'tokenizer').mkdir()
 
     def _maker():
@@ -43,6 +43,7 @@ def tokenizer_factory(dsn, tmp_path, monkeypatch, property_table):
 
     return _maker
 
+
 @pytest.fixture
 def tokenizer_setup(tokenizer_factory, test_config, monkeypatch, sql_preprocessor):
     monkeypatch.setattr(legacy_tokenizer, '_check_module' , lambda m, c: None)
@@ -208,7 +209,7 @@ def test_update_special_phrase_empty_table(analyzer, word_table, temp_db_cursor,
         ("König bei", "amenity", "royal", "near"),
         ("Könige", "amenity", "royal", "-"),
         ("strasse", "highway", "primary", "in")
-    ])
+    ], True)
 
     assert temp_db_cursor.row_set("""SELECT word_token, word, class, type, operator
                                      FROM word WHERE class != 'place'""") \
@@ -225,11 +226,24 @@ def test_update_special_phrase_delete_all(analyzer, word_table, temp_db_cursor,
 
     assert 2 == temp_db_cursor.scalar("SELECT count(*) FROM word WHERE class != 'place'""")
 
-    analyzer.update_special_phrases([])
+    analyzer.update_special_phrases([], True)
 
     assert 0 == temp_db_cursor.scalar("SELECT count(*) FROM word WHERE class != 'place'""")
 
 
+def test_update_special_phrases_no_replace(analyzer, word_table, temp_db_cursor,
+                                          make_standard_name):
+    temp_db_cursor.execute("""INSERT INTO word (word_token, word, class, type, operator)
+                              VALUES (' foo', 'foo', 'amenity', 'prison', 'in'),
+                                     (' bar', 'bar', 'highway', 'road', null)""")
+
+    assert 2 == temp_db_cursor.scalar("SELECT count(*) FROM word WHERE class != 'place'""")
+
+    analyzer.update_special_phrases([], False)
+
+    assert 2 == temp_db_cursor.scalar("SELECT count(*) FROM word WHERE class != 'place'""")
+
+
 def test_update_special_phrase_modify(analyzer, word_table, temp_db_cursor,
                                       make_standard_name):
     temp_db_cursor.execute("""INSERT INTO word (word_token, word, class, type, operator)
@@ -242,7 +256,7 @@ def test_update_special_phrase_modify(analyzer, word_table, temp_db_cursor,
       ('prison', 'amenity', 'prison', 'in'),
       ('bar', 'highway', 'road', '-'),
       ('garden', 'leisure', 'garden', 'near')
-    ])
+    ], True)
 
     assert temp_db_cursor.row_set("""SELECT word_token, word, class, type, operator
                                      FROM word WHERE class != 'place'""") \