refactored tests and made changes to code for easy readibility

This commit is contained in:
Darkshredder
2021-03-12 18:23:20 +05:30
parent 7a874d5b97
commit 077a8c1f95
2 changed files with 28 additions and 25 deletions

View File

@@ -312,32 +312,29 @@ def create_country_names(conn, config):
""" """
with conn.cursor() as cur: with conn.cursor() as cur:
cur.execute("""select cur.execute("""SELECT getorcreate_country(make_standard_name('uk'), 'gb')""")
getorcreate_country(make_standard_name('uk') cur.execute("""SELECT getorcreate_country(make_standard_name('united states'), 'us')""")
, 'gb')""") cur.execute("""SELECT COUNT(*) FROM
cur.execute("""select getorcreate_country(make_standard_name('united states'), 'us')""") (SELECT getorcreate_country(make_standard_name(country_code),
cur.execute("""select count(*) from country_code) FROM country_name WHERE country_code is not null) AS x""")
(select getorcreate_country(make_standard_name(country_code), cur.execute("""SELECT COUNT(*) FROM
country_code) from country_name where country_code is not null) as x""") (SELECT getorcreate_country(make_standard_name(name->'name'), country_code)
cur.execute("""select count(*) from FROM country_name WHERE name ? 'name') AS x""")
(select getorcreate_country(make_standard_name(name->'name'), sql_statement = """SELECT COUNT(*) FROM (SELECT getorcreate_country(make_standard_name(v),
country_code) from country_name where name ? 'name') as x""") country_code) FROM (SELECT country_code, skeys(name)
sql_statement = """select count(*) from (select getorcreate_country(make_standard_name(v) AS k, svals(name) AS v FROM country_name) x WHERE k"""
, country_code) from (select country_code, skeys(name)
as k, svals(name) as v from country_name) x where k """
languages = config.LANGUAGES languages = config.LANGUAGES
if languages: if languages:
sql_statement += 'in ' sql_statement = "{} IN (".format(sql_statement)
delim = '(' delim = ''
for language in languages.split(','): for language in languages.split(','):
sql_statement += delim + "'name:" + language + "'" sql_statement = "{}{}'name:{}'".format(sql_statement,delim,language)
delim = ',' delim = ', '
sql_statement = '{})'.format(sql_statement)
sql_statement += ')'
else: else:
sql_statement += "like 'name:%'" sql_statement = "{} LIKE 'name:%'".format(sql_statement)
sql_statement += ') v' sql_statement = "{}) v".format(sql_statement)
cur.execute(sql_statement) cur.execute(sql_statement)
conn.commit() conn.commit()

View 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) temp_db_cursor.execute("""CREATE FUNCTION make_standard_name (name TEXT)
RETURNS TEXT AS $$ SELECT 'a'::TEXT $$ LANGUAGE SQL 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, 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 RETURNS INTEGER
AS $$ AS $$
BEGIN BEGIN
INSERT INTO country_name VALUES (5, lookup_word); INSERT INTO word VALUES (lookup_country_code);
RETURN 5; RETURN 5;
END; END;
$$ $$
LANGUAGE plpgsql; 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) 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