From 322db69edd68c65b67df367d61f5866ccfad3b10 Mon Sep 17 00:00:00 2001 From: Christophe Siraut Date: Thu, 21 Jun 2018 17:07:00 +0200 Subject: [PATCH 1/2] tests/utilities: add force_connections_close() --- tests/utilities.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/tests/utilities.py b/tests/utilities.py index 17bcb71e..4c042093 100644 --- a/tests/utilities.py +++ b/tests/utilities.py @@ -160,10 +160,24 @@ def clean_temporary_pub(): cur = conn.cursor() cur.execute('DROP DATABASE %s' % known_elements.sql_db_name) cur.close() - except psycopg2.Error: - pass + except psycopg2.Error as e: + print(e) known_elements.sql_db_name = None + +def force_connections_close(): + # workaround for threading issue + # https://code.djangoproject.com/ticket/22420 + if known_elements.sql_db_name: + conn = psycopg2.connect(user=os.environ['USER']) + cur = conn.cursor() + cur.execute('''SELECT pg_terminate_backend(pg_stat_activity.pid) + FROM pg_stat_activity + WHERE pg_stat_activity.datname = %s + AND pid <> pg_backend_pid();''', (known_elements.sql_db_name,)) + cur.close() + + def get_app(pub, https=False): extra_environ = {'HTTP_HOST': 'example.net', 'REMOTE_ADDR': '127.0.0.1'} if https: -- 2.11.0