From ecab37694f7f9dd2ce929e7ba29e31e38ad20d39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Fri, 6 Dec 2019 13:23:35 +0100 Subject: [PATCH] tests: try multiple times to get a database name --- tests/utilities.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/tests/utilities.py b/tests/utilities.py index b84d6facb..acd59fbca 100644 --- a/tests/utilities.py +++ b/tests/utilities.py @@ -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()