From ccb45c6971472022923baab782cc2c875d17690f Mon Sep 17 00:00:00 2001 From: Christophe Siraut Date: Wed, 13 Jun 2018 17:28:59 +0200 Subject: [PATCH 2/3] tests: add a function to force connections close when performing tests --- tests/utilities.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/tests/utilities.py b/tests/utilities.py index 17bcb71e..82f7aae9 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 complex 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 = '{}' + AND pid <> pg_backend_pid();'''.format(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