diff --git a/web/pgadmin/tools/debugger/tests/test_debugger_clear_all_breakpoint.py b/web/pgadmin/tools/debugger/tests/test_debugger_clear_all_breakpoint.py index 26d19e929..5c5bf03b9 100644 --- a/web/pgadmin/tools/debugger/tests/test_debugger_clear_all_breakpoint.py +++ b/web/pgadmin/tools/debugger/tests/test_debugger_clear_all_breakpoint.py @@ -30,7 +30,11 @@ class DebuggerClearAllBreakpoint(BaseTestGenerator): def setUp(self): super().setUp() - + # This is added because debugger_utils.start_listener() does not return + # any response, hence thread hangs. + # Ref - https://github.com/pgadmin-org/pgadmin4/issues/7136 + if PG_DEFAULT_DRIVER == PSYCOPG3: + self.skipTest('Skip for psycopg3.') if sys.platform == 'win32': self.skipTest('PSQL disabled for windows') @@ -56,7 +60,6 @@ class DebuggerClearAllBreakpoint(BaseTestGenerator): if self.init_target: debugger_utils.initialize_target(self, utils) - debugger_utils.start_listener(self, utils, db_utils) self.port_no = debugger_utils.messages(self, utils, db_utils) debugger_utils.start_execution(self, utils, db_utils) diff --git a/web/pgadmin/tools/debugger/tests/test_debugger_execute_query.py b/web/pgadmin/tools/debugger/tests/test_debugger_execute_query.py index f16d2bca0..25d6d65af 100644 --- a/web/pgadmin/tools/debugger/tests/test_debugger_execute_query.py +++ b/web/pgadmin/tools/debugger/tests/test_debugger_execute_query.py @@ -8,7 +8,8 @@ ########################################################################## import json - +from config import PG_DEFAULT_DRIVER +from pgadmin.utils.constants import PSYCOPG3 from pgadmin.utils.route import BaseTestGenerator from regression.python_test_utils import test_utils as utils from . import utils as debugger_utils @@ -28,6 +29,11 @@ class DebuggerExecuteQuery(BaseTestGenerator): def setUp(self): super().setUp() + # This is added because debugger_utils.start_listener() does not return + # any response, hence thread hangs. + # Ref - https://github.com/pgadmin-org/pgadmin4/issues/7136 + if PG_DEFAULT_DRIVER == PSYCOPG3: + self.skipTest('Skip for psycopg3.') self.schema_data = parent_node_dict['schema'][-1] self.server_id = self.schema_data['server_id'] self.db_id = self.schema_data['db_id'] diff --git a/web/pgadmin/tools/debugger/tests/test_debugger_poll_execution_result.py b/web/pgadmin/tools/debugger/tests/test_debugger_poll_execution_result.py index 6fcfa479d..53fa3ba60 100644 --- a/web/pgadmin/tools/debugger/tests/test_debugger_poll_execution_result.py +++ b/web/pgadmin/tools/debugger/tests/test_debugger_poll_execution_result.py @@ -18,6 +18,8 @@ from pgadmin.browser.server_groups.servers.databases.schemas.functions \ .tests import utils as funcs_utils from pgadmin.browser.server_groups.servers.databases.tests import \ utils as db_utils +from config import PG_DEFAULT_DRIVER +from pgadmin.utils.constants import PSYCOPG3 class DebuggerPollExecutionResult(BaseTestGenerator): @@ -28,6 +30,13 @@ class DebuggerPollExecutionResult(BaseTestGenerator): def setUp(self): super().setUp() + + # This is added because debugger_utils.start_listener() does not return + # any response, hence thread hangs. + # Ref - https://github.com/pgadmin-org/pgadmin4/issues/7136 + if PG_DEFAULT_DRIVER == PSYCOPG3: + self.skipTest('Skip for psycopg3.') + self.schema_data = parent_node_dict['schema'][-1] self.server_id = self.schema_data['server_id'] self.db_id = self.schema_data['db_id'] diff --git a/web/pgadmin/tools/debugger/tests/test_debugger_poll_result.py b/web/pgadmin/tools/debugger/tests/test_debugger_poll_result.py index 498fe21a3..15cef0e18 100644 --- a/web/pgadmin/tools/debugger/tests/test_debugger_poll_result.py +++ b/web/pgadmin/tools/debugger/tests/test_debugger_poll_result.py @@ -18,6 +18,8 @@ from pgadmin.browser.server_groups.servers.databases.schemas.functions \ .tests import utils as funcs_utils from pgadmin.browser.server_groups.servers.databases.tests import \ utils as db_utils +from config import PG_DEFAULT_DRIVER +from pgadmin.utils.constants import PSYCOPG3 class DebuggerPollResult(BaseTestGenerator): @@ -28,6 +30,13 @@ class DebuggerPollResult(BaseTestGenerator): def setUp(self): super().setUp() + + # This is added because debugger_utils.start_listener() does not return + # any response, hence thread hangs. + # Ref - https://github.com/pgadmin-org/pgadmin4/issues/7136 + if PG_DEFAULT_DRIVER == PSYCOPG3: + self.skipTest('Skip for psycopg3.') + self.schema_data = parent_node_dict['schema'][-1] self.server_id = self.schema_data['server_id'] self.db_id = self.schema_data['db_id'] diff --git a/web/pgadmin/tools/debugger/tests/test_debugger_set_breakpoint.py b/web/pgadmin/tools/debugger/tests/test_debugger_set_breakpoint.py index 733ce0879..c36eecd42 100644 --- a/web/pgadmin/tools/debugger/tests/test_debugger_set_breakpoint.py +++ b/web/pgadmin/tools/debugger/tests/test_debugger_set_breakpoint.py @@ -18,6 +18,8 @@ from pgadmin.browser.server_groups.servers.databases.schemas.functions \ .tests import utils as funcs_utils from pgadmin.browser.server_groups.servers.databases.tests import \ utils as db_utils +from config import PG_DEFAULT_DRIVER +from pgadmin.utils.constants import PSYCOPG3 class DebuggerSetBreakpoint(BaseTestGenerator): @@ -28,6 +30,13 @@ class DebuggerSetBreakpoint(BaseTestGenerator): def setUp(self): super().setUp() + + # This is added because debugger_utils.start_listener() does not return + # any response, hence thread hangs. + # Ref - https://github.com/pgadmin-org/pgadmin4/issues/7136 + if PG_DEFAULT_DRIVER == PSYCOPG3: + self.skipTest('Skip for psycopg3.') + self.schema_data = parent_node_dict['schema'][-1] self.server_id = self.schema_data['server_id'] self.db_id = self.schema_data['db_id'] diff --git a/web/pgadmin/tools/debugger/tests/test_start_execution_debugger.py b/web/pgadmin/tools/debugger/tests/test_start_execution_debugger.py index 5714252f7..526681f13 100644 --- a/web/pgadmin/tools/debugger/tests/test_start_execution_debugger.py +++ b/web/pgadmin/tools/debugger/tests/test_start_execution_debugger.py @@ -18,6 +18,8 @@ from pgadmin.browser.server_groups.servers.databases.schemas.functions \ .tests import utils as funcs_utils from pgadmin.browser.server_groups.servers.databases.tests import \ utils as db_utils +from config import PG_DEFAULT_DRIVER +from pgadmin.utils.constants import PSYCOPG3 class DebuggerStartExecution(BaseTestGenerator): @@ -28,6 +30,12 @@ class DebuggerStartExecution(BaseTestGenerator): def setUp(self): super().setUp() + + # This is added because debugger_utils.start_listener() does not return + # any response, hence thread hangs. + if PG_DEFAULT_DRIVER == PSYCOPG3: + self.skipTest('Skip for psycopg3.') + self.schema_data = parent_node_dict['schema'][-1] self.server_id = self.schema_data['server_id'] self.db_id = self.schema_data['db_id'] diff --git a/web/pgadmin/tools/debugger/tests/utils.py b/web/pgadmin/tools/debugger/tests/utils.py index 20841bd3c..8adb0a4ec 100644 --- a/web/pgadmin/tools/debugger/tests/utils.py +++ b/web/pgadmin/tools/debugger/tests/utils.py @@ -1,6 +1,7 @@ import os import sys import json +import time import uuid @@ -80,6 +81,7 @@ def add_extension(self, utils, del_function=True, db_utils=None): ) connection.commit() + connection.close() except Exception as e: print( "=============================================================" @@ -88,7 +90,7 @@ def add_extension(self, utils, del_function=True, db_utils=None): ) if del_function: delete_function(self, utils) - + connection.close() db_utils.disconnect_database(self, self.server_id, self.db_id) self.skipTest('The debugger plugin is not installed.') @@ -126,7 +128,7 @@ def initialize_target(self, utils, close_debugger_instance=True): def start_listener(self, utils, db_utils): - response = self.tester.get( + response = self.tester.post( 'debugger/start_listener/' + str(self.trans_id), content_type='application/json') if response.status_code != 200: diff --git a/web/pgadmin/tools/psql/tests/test_backend_task.py b/web/pgadmin/tools/psql/tests/test_backend_task.py index 219ba632b..f4fafe104 100644 --- a/web/pgadmin/tools/psql/tests/test_backend_task.py +++ b/web/pgadmin/tools/psql/tests/test_backend_task.py @@ -79,7 +79,6 @@ class PSQLBackend(BaseTestGenerator): } self.test_client.emit('socket_input', input_data, namespace='/pty') self.test_client.get_received('/pty') - self.test_client.disconnect(namespace='/pty') def tearDown(self): connection = utils.get_db_connection(self.server['db'], @@ -88,3 +87,4 @@ class PSQLBackend(BaseTestGenerator): self.server['host'], self.server['port']) utils.drop_database(connection, self.db_name) + connection.close() diff --git a/web/pgadmin/tools/psql/tests/test_panel.py b/web/pgadmin/tools/psql/tests/test_panel.py index 7bedf6493..f580ac0bb 100644 --- a/web/pgadmin/tools/psql/tests/test_panel.py +++ b/web/pgadmin/tools/psql/tests/test_panel.py @@ -37,3 +37,4 @@ class PSQLPanel(BaseTestGenerator): self.server['host'], self.server['port']) utils.drop_database(connection, self.db_name) + connection.close() diff --git a/web/pgadmin/tools/psql/tests/test_psql_disabled.py b/web/pgadmin/tools/psql/tests/test_psql_disabled.py index 26f5e56a3..78d721349 100644 --- a/web/pgadmin/tools/psql/tests/test_psql_disabled.py +++ b/web/pgadmin/tools/psql/tests/test_psql_disabled.py @@ -35,3 +35,4 @@ class PSQLSocketDisabled(BaseSocketTestGenerator): self.server['host'], self.server['port']) utils.drop_database(connection, self.db_name) + connection.close() diff --git a/web/pgadmin/tools/psql/tests/test_psql_input.py b/web/pgadmin/tools/psql/tests/test_psql_input.py index df07cf834..982c01806 100644 --- a/web/pgadmin/tools/psql/tests/test_psql_input.py +++ b/web/pgadmin/tools/psql/tests/test_psql_input.py @@ -22,7 +22,6 @@ class PSQLInput(BaseTestGenerator): self.sid = parent_node_dict["server"][-1]["server_id"] self.sgid = config_data["server_group"] config.ENABLE_PSQL = True - self.server_con = server_utils.connect_server(self, self.sid) def runTest(self): if sys.platform == 'win32': @@ -149,3 +148,4 @@ class PSQLInput(BaseTestGenerator): self.server['host'], self.server['port']) utils.drop_database(connection, self.db_name) + connection.close() diff --git a/web/pgadmin/tools/psql/tests/test_resize_terminal.py b/web/pgadmin/tools/psql/tests/test_resize_terminal.py index f0c6d6a43..294471cb8 100644 --- a/web/pgadmin/tools/psql/tests/test_resize_terminal.py +++ b/web/pgadmin/tools/psql/tests/test_resize_terminal.py @@ -22,7 +22,6 @@ class PSQLResizeTerminal(BaseTestGenerator): self.sid = parent_node_dict["server"][-1]["server_id"] self.sgid = config_data["server_group"] config.ENABLE_PSQL = True - self.server_con = server_utils.connect_server(self, self.sid) def runTest(self): if sys.platform == 'win32': @@ -50,8 +49,6 @@ class PSQLResizeTerminal(BaseTestGenerator): self.test_client.emit('resize', self.input_data, namespace='/pty') - self.test_client.disconnect(namespace='/pty') - def tearDown(self): connection = utils.get_db_connection(self.server['db'], self.server['username'], @@ -59,3 +56,4 @@ class PSQLResizeTerminal(BaseTestGenerator): self.server['host'], self.server['port']) utils.drop_database(connection, self.db_name) + connection.close() diff --git a/web/pgadmin/tools/psql/tests/test_socket_connect.py b/web/pgadmin/tools/psql/tests/test_socket_connect.py index c7dc87450..f79dd2f77 100644 --- a/web/pgadmin/tools/psql/tests/test_socket_connect.py +++ b/web/pgadmin/tools/psql/tests/test_socket_connect.py @@ -36,3 +36,4 @@ class PSQLSocketConnect(BaseSocketTestGenerator): self.server['host'], self.server['port']) utils.drop_database(connection, self.db_name) + connection.close() diff --git a/web/pgadmin/tools/psql/tests/test_socket_disconnect.py b/web/pgadmin/tools/psql/tests/test_socket_disconnect.py index 086b85f9b..3eeaf228c 100644 --- a/web/pgadmin/tools/psql/tests/test_socket_disconnect.py +++ b/web/pgadmin/tools/psql/tests/test_socket_disconnect.py @@ -44,8 +44,6 @@ class PSQLSocketDisconnect(BaseTestGenerator): self.test_client.emit('start_process', data, namespace='/pty') self.test_client.get_received('/pty') - self.test_client.disconnect(namespace='/pty') - def tearDown(self): connection = utils.get_db_connection(self.server['db'], self.server['username'], @@ -53,3 +51,4 @@ class PSQLSocketDisconnect(BaseTestGenerator): self.server['host'], self.server['port']) utils.drop_database(connection, self.db_name) + connection.close() diff --git a/web/pgadmin/tools/psql/tests/test_start_process.py b/web/pgadmin/tools/psql/tests/test_start_process.py index cbb636cf6..7ee0bbc3a 100644 --- a/web/pgadmin/tools/psql/tests/test_start_process.py +++ b/web/pgadmin/tools/psql/tests/test_start_process.py @@ -19,8 +19,6 @@ class PSQLStartProcess(BaseTestGenerator): self.sgid = config_data["server_group"] config.ENABLE_PSQL = True - self.server_con = server_utils.connect_server(self, self.sid) - def runTest(self): if sys.platform == 'win32': self.skipTest('PSQL disabled for windows') @@ -55,3 +53,4 @@ class PSQLStartProcess(BaseTestGenerator): self.server['host'], self.server['port']) utils.drop_database(connection, self.db_name) + connection.close() diff --git a/web/pgadmin/tools/psql/tests/test_start_process_fail.py b/web/pgadmin/tools/psql/tests/test_start_process_fail.py index 77706304b..e7132e1a8 100644 --- a/web/pgadmin/tools/psql/tests/test_start_process_fail.py +++ b/web/pgadmin/tools/psql/tests/test_start_process_fail.py @@ -47,3 +47,4 @@ class PSQLStartProcessFail(BaseSocketTestGenerator): self.server['host'], self.server['port']) utils.drop_database(connection, self.db_name) + connection.close()