tests: try multiple times to get a database name

This commit is contained in:
Frédéric Péters 2019-12-06 13:23:35 +01:00
parent 483aa0e1d9
commit ecab37694f
1 changed files with 15 additions and 5 deletions

View File

@ -145,11 +145,21 @@ def create_temporary_pub(sql_mode=False, templates_mode=False, lazy_mode=False):
if sql_mode:
conn = psycopg2.connect(user=os.environ['USER'])
conn.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT)
cur = conn.cursor()
dbname = 'wcstests%d' % random.randint(0, 100000)
known_elements.sql_db_name = dbname
cur.execute('CREATE DATABASE %s' % dbname)
cur.close()
i = 0
while True:
dbname = 'wcstests%d' % random.randint(0, 100000)
known_elements.sql_db_name = dbname
try:
cur = conn.cursor()
cur.execute('CREATE DATABASE %s' % dbname)
break
except psycopg2.Error as e:
if i < 5:
i += 1
continue
raise
finally:
cur.close()
pub.cfg['postgresql'] = {'database': dbname, 'user': os.environ['USER']}
pub.write_cfg()