From 24d58a834fd505b925e71c11df00010752bc919d 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 | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/tests/utilities.py b/tests/utilities.py index 17bcb71e..22bde4b8 100644 --- a/tests/utilities.py +++ b/tests/utilities.py @@ -160,10 +160,27 @@ 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 + try: + 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() + except psycopg2.ProgrammingError: + pass + + def get_app(pub, https=False): extra_environ = {'HTTP_HOST': 'example.net', 'REMOTE_ADDR': '127.0.0.1'} if https: -- 2.11.0