]> git.openstreetmap.org Git - nominatim.git/commitdiff
refactored tests and made changes to code for easy readibility
authorDarkshredder <srivastavayash58@gmail.com>
Fri, 12 Mar 2021 12:53:20 +0000 (18:23 +0530)
committerDarkshredder <srivastavayash58@gmail.com>
Fri, 12 Mar 2021 12:53:20 +0000 (18:23 +0530)
nominatim/tools/database_import.py
test/python/test_tools_database_import.py

index 9d4cad1693bbc6c089ac930c57add5f3493dc5ce..4ba4493c5fec027908670437575c9c9ff4135211 100644 (file)
@@ -312,32 +312,29 @@ def create_country_names(conn, config):
     """
 
     with conn.cursor() as cur:
-        cur.execute("""select
-                       getorcreate_country(make_standard_name('uk')
-                       , 'gb')""")
-        cur.execute("""select getorcreate_country(make_standard_name('united states'), 'us')""")
-        cur.execute("""select count(*) from
-                       (select getorcreate_country(make_standard_name(country_code),
-                       country_code) from country_name where country_code is not null) as x""")
-        cur.execute("""select count(*) from
-                        (select getorcreate_country(make_standard_name(name->'name'),
-                        country_code) from country_name where name ? 'name') as x""")
-        sql_statement = """select count(*) from (select getorcreate_country(make_standard_name(v)
-                           , country_code) from (select country_code, skeys(name)
-                           as k, svals(name) as v from country_name) x where k """
+        cur.execute("""SELECT getorcreate_country(make_standard_name('uk'), 'gb')""")
+        cur.execute("""SELECT getorcreate_country(make_standard_name('united states'), 'us')""")
+        cur.execute("""SELECT COUNT(*) FROM
+                       (SELECT getorcreate_country(make_standard_name(country_code),
+                       country_code) FROM country_name WHERE country_code is not null) AS x""")
+        cur.execute("""SELECT COUNT(*) FROM
+                       (SELECT getorcreate_country(make_standard_name(name->'name'), country_code) 
+                       FROM country_name WHERE name ? 'name') AS x""")
+        sql_statement = """SELECT COUNT(*) FROM (SELECT getorcreate_country(make_standard_name(v),
+                           country_code) FROM (SELECT country_code, skeys(name)
+                           AS k, svals(name) AS v FROM country_name) x WHERE k"""
 
         languages = config.LANGUAGES
 
         if languages:
-            sql_statement += 'in '
-            delim = '('
+            sql_statement = "{} IN (".format(sql_statement)
+            delim = ''
             for language in languages.split(','):
-                sql_statement += delim + "'name:" + language + "'"
-                delim = ','
-
-            sql_statement += ')'
+                sql_statement = "{}{}'name:{}'".format(sql_statement,delim,language)
+                delim = ', '
+            sql_statement = '{})'.format(sql_statement)
         else:
-            sql_statement += "like 'name:%'"
-        sql_statement += ') v'
+            sql_statement = "{} LIKE 'name:%'".format(sql_statement)
+        sql_statement = "{}) v".format(sql_statement)
         cur.execute(sql_statement)
     conn.commit()
index 2e76f5c56b14f5ebe084314a54e38ee0e312254f..e2852acb45adae34d5761b0e70ac6636341c9ea2 100644 (file)
@@ -209,17 +209,23 @@ def test_create_country_names(temp_db_conn, temp_db_cursor, def_config,
     temp_db_cursor.execute("""CREATE FUNCTION make_standard_name (name TEXT)
                                   RETURNS TEXT AS $$ SELECT 'a'::TEXT $$ LANGUAGE SQL
                                """)
+    temp_db_cursor.execute('CREATE TABLE country_name (country_code varchar(2), name hstore)')
+    temp_db_cursor.execute('CREATE TABLE word (code varchar(2))')
+    temp_db_cursor.execute("""INSERT INTO country_name VALUES ('us',
+                              '"name"=>"us","name:af"=>"us"')""")
     temp_db_cursor.execute("""CREATE OR REPLACE FUNCTION getorcreate_country(lookup_word TEXT,
-                                               lookup_country_code varchar(2))
+                            lookup_country_code varchar(2))
                             RETURNS INTEGER
                             AS $$
                             BEGIN
-                                INSERT INTO country_name VALUES (5, lookup_word);
+                                INSERT INTO word VALUES (lookup_country_code);
                                 RETURN 5;
                             END;
                             $$
                             LANGUAGE plpgsql;
                                """)
-    temp_db_cursor.execute('CREATE TABLE country_name (id int, country_code varchar(2), name hstore)')
     database_import.create_country_names(temp_db_conn, def_config)
-    assert temp_db_cursor.table_rows('country_name') == 4
+    if languages:
+        assert temp_db_cursor.table_rows('word') == 4
+    else:
+        assert temp_db_cursor.table_rows('word') == 5