diff --git a/web/pgadmin/utils/tests/test_versioned_template_loader.py b/web/pgadmin/utils/tests/test_versioned_template_loader.py index 5374b87..4ba5603 100644 --- a/web/pgadmin/utils/tests/test_versioned_template_loader.py +++ b/web/pgadmin/utils/tests/test_versioned_template_loader.py @@ -33,34 +33,37 @@ class TestVersionedTemplateLoader(BaseTestGenerator): def test_get_source_returns_a_template(self): expected_content = "Some SQL" \ "\nsome more stuff on a new line\n" - + # For cross platform we join the SQL path (This solves the slashes issue) + sql_path = os.path.join("some_feature", "sql", "9.1_plus", "some_action.sql") content, filename, up_to_dateness = self.loader.get_source(None, "some_feature/sql/9.1_plus/some_action.sql") - - self.assertEqual(expected_content, content) - self.assertIn("some_feature/sql/9.1_plus/some_action.sql", filename) + self.assertEqual(expected_content, str(content).replace("\r","")) + self.assertIn(sql_path, filename) def test_get_source_when_the_version_is_9_1_returns_9_1_template(self): expected_content = "Some SQL" \ "\nsome more stuff on a new line\n" - + # For cross platform we join the SQL path (This solves the slashes issue) + sql_path = os.path.join("some_feature", "sql", "9.1_plus", "some_action.sql") content, filename, up_to_dateness = self.loader.get_source(None, "some_feature/sql/#90100#/some_action.sql") - self.assertEqual(expected_content, content) - self.assertIn("some_feature/sql/9.1_plus/some_action.sql", filename) + self.assertEqual(expected_content, str(content).replace("\r","")) + self.assertIn(sql_path, filename) def test_get_source_when_the_version_is_9_3_and_there_are_templates_for_9_2_and_9_1_returns_9_2_template(self): - + # For cross platform we join the SQL path (This solves the slashes issue) + sql_path = os.path.join("some_feature", "sql", "9.2_plus", "some_action.sql") content, filename, up_to_dateness = self.loader.get_source(None, "some_feature/sql/#90300#/some_action.sql") - self.assertEqual("Some 9.2 SQL", content) - self.assertIn("some_feature/sql/9.2_plus/some_action.sql", filename) + self.assertEqual("Some 9.2 SQL", str(content).replace("\r","")) + self.assertIn(sql_path, filename) def test_get_source_when_the_version_is_9_0_and_there_are_templates_for_9_1_and_9_2_returns_default_template(self): - + # For cross platform we join the SQL path (This solves the slashes issue) + sql_path = os.path.join("some_feature", "sql", "default", "some_action_with_default.sql") content, filename, up_to_dateness = self.loader.get_source(None, "some_feature/sql/#90000#/some_action_with_default.sql") - self.assertEqual("Some default SQL", content) - self.assertIn("some_feature/sql/default/some_action_with_default.sql", filename) + self.assertEqual("Some default SQL", str(content).replace("\r","")) + self.assertIn(sql_path, filename) def test_raise_not_found_exception_when_postgres_version_less_than_all_available_sql_templates(self): diff --git a/web/regression/feature_utils/app_starter.py b/web/regression/feature_utils/app_starter.py index b03f2a9..edfda05 100644 --- a/web/regression/feature_utils/app_starter.py +++ b/web/regression/feature_utils/app_starter.py @@ -7,7 +7,8 @@ # ########################################################################## -import os +from __future__ import print_function +import os, sys import subprocess import signal @@ -27,13 +28,11 @@ class AppStarter: random_server_port = str(random.randint(10000, 65535)) env = { "PGADMIN_PORT": random_server_port, - "SQLITE_PATH": self.app_config.TEST_SQLITE_PATH + "SQLITE_PATH": str(self.app_config.TEST_SQLITE_PATH) } env.update(os.environ) - self.pgadmin_process = subprocess.Popen(["python", "pgAdmin4.py"], shell=False, - preexec_fn=os.setsid, stderr=open(os.devnull, 'w'), env=env) @@ -42,5 +41,8 @@ class AppStarter: self.driver.get("http://" + self.app_config.DEFAULT_SERVER + ":" + random_server_port) def stop_app(self): + print("I am in stop_app() function.", file=sys.stderr) self.driver.quit() - os.killpg(os.getpgid(self.pgadmin_process.pid), signal.SIGTERM) + print("Quitting driver.", file=sys.stderr) + os.kill(self.pgadmin_process.pid, signal.SIGTERM) + print("pgAdmin4.py process killed.", file=sys.stderr) diff --git a/web/regression/python_test_utils/test_utils.py b/web/regression/python_test_utils/test_utils.py index 2b7c695..7cd0965 100644 --- a/web/regression/python_test_utils/test_utils.py +++ b/web/regression/python_test_utils/test_utils.py @@ -474,21 +474,25 @@ def _cleanup(tester, app_starter): for database in test_databases: connection = get_db_server(database["server_id"]) if connection: + print("Dropping databases.", file=sys.stderr) drop_database(connection, database["db_name"]) # Delete table spaces for tablespace in test_table_spaces: connection = get_db_server(tablespace["server_id"]) if connection: + print("Dropping tablespaces.", file=sys.stderr) regression.tablespace_utils.delete_tablespace( connection, tablespace["tablespace_name"]) # Delete roles for role in test_roles: connection = get_db_server(role["server_id"]) if connection: + print("Dropping roles.", file=sys.stderr) regression.roles_utils.delete_role(connection, role["role_name"]) # Delete servers for server in test_servers: + print("Deleting servers.", file=sys.stderr) delete_server_with_api(tester, server["server_id"]) except Exception: traceback.print_exc(file=sys.stderr) @@ -498,6 +502,7 @@ def _cleanup(tester, app_starter): # Remove SQLite db file remove_db_file() if app_starter: + print("Stopping app.", file=sys.stderr) app_starter.stop_app() diff --git a/web/regression/runtests.py b/web/regression/runtests.py index 5f4a3d0..3ab7512 100644 --- a/web/regression/runtests.py +++ b/web/regression/runtests.py @@ -67,10 +67,10 @@ if pgadmin_credentials: for item in ['login_username', 'login_password']): pgadmin_credentials = pgadmin_credentials[ 'pgAdmin4_login_credentials'] - os.environ['PGADMIN_SETUP_EMAIL'] = pgadmin_credentials[ - 'login_username'] - os.environ['PGADMIN_SETUP_PASSWORD'] = pgadmin_credentials[ - 'login_password'] + os.environ['PGADMIN_SETUP_EMAIL'] = str(pgadmin_credentials[ + 'login_username']) + os.environ['PGADMIN_SETUP_PASSWORD'] = str(pgadmin_credentials[ + 'login_password']) # Execute the setup file exec (open("setup.py").read())