Support SSL in the regression tests. Fixes #2170

This commit is contained in:
Murtuza Zabuawala
2017-07-18 15:23:11 +01:00
committed by Dave Page
parent 6396b8ce18
commit bab3da24e6
55 changed files with 266 additions and 119 deletions

View File

@@ -52,7 +52,8 @@ class CastsAddTestCase(BaseTestGenerator):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
cast_utils.drop_cast(connection, self.data["srctyp"],
self.data["trgtyp"])
database_utils.disconnect_database(self, self.server_id,

View File

@@ -48,7 +48,8 @@ class CastsDeleteTestCase(BaseTestGenerator):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
response = cast_utils.verify_cast(connection, self.source_type,
self.target_type)
if len(response) == 0:

View File

@@ -58,7 +58,8 @@ class CastsGetTestCase(BaseTestGenerator):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
cast_utils.drop_cast(connection, self.source_type,
self.target_type)
database_utils.disconnect_database(self, self.server_id,

View File

@@ -43,7 +43,8 @@ def create_cast(server, source_type, target_type):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
old_isolation_level = connection.isolation_level
connection.set_isolation_level(0)
pg_cursor = connection.cursor()

View File

@@ -37,7 +37,8 @@ def create_event_trigger(server, db_name, schema_name, func_name,
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
old_isolation_level = connection.isolation_level
connection.set_isolation_level(0)
pg_cursor = connection.cursor()
@@ -77,7 +78,8 @@ def verify_event_trigger(server, db_name, trigger_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
pg_cursor.execute(
"SELECT oid FROM pg_event_trigger WHERE evtname = '%s'"

View File

@@ -43,7 +43,8 @@ def create_extension(server, db_name, extension_name, schema_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
old_isolation_level = connection.isolation_level
connection.set_isolation_level(0)
pg_cursor = connection.cursor()
@@ -83,7 +84,8 @@ def verify_extension(server, db_name, extension_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
pg_cursor.execute(
@@ -111,7 +113,8 @@ def drop_extension(server, db_name, extension_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
pg_cursor.execute(
"SELECT * FROM pg_extension WHERE extname='%s'"

View File

@@ -31,7 +31,8 @@ def create_fsrv(server, db_name, fsrv_name, fdw_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
old_isolation_level = connection.isolation_level
connection.set_isolation_level(0)
pg_cursor = connection.cursor()
@@ -67,7 +68,8 @@ def verify_fsrv(server, db_name , fsrv_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
pg_cursor.execute(

View File

@@ -33,7 +33,8 @@ def create_user_mapping(server, db_name, fsrv_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
old_isolation_level = connection.isolation_level
connection.set_isolation_level(0)
pg_cursor = connection.cursor()
@@ -73,7 +74,8 @@ def verify_user_mapping(server, db_name, fsrv_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
pg_cursor.execute(
"select umid from pg_user_mappings where srvname = '%s' order by"

View File

@@ -58,7 +58,8 @@ def create_fdw(server, db_name, fdw_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
old_isolation_level = connection.isolation_level
connection.set_isolation_level(0)
pg_cursor = connection.cursor()
@@ -96,7 +97,8 @@ def verify_fdw(server, db_name, fdw_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
pg_cursor.execute(
"SELECT oid FROM pg_foreign_data_wrapper WHERE fdwname = '%s'"

View File

@@ -32,7 +32,8 @@ def create_language(server, db_name, lang_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
query = ("CREATE TRUSTED PROCEDURAL LANGUAGE %s "
@@ -67,7 +68,8 @@ def verify_language(server, db_name, lang_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
pg_cursor.execute("SELECT oid from pg_language where lanname='%s'" %
lang_name)
@@ -94,7 +96,8 @@ def delete_language(server, db_name, lang_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
pg_cursor.execute("SELECT * from pg_language where lanname='%s'" %
lang_name)

View File

@@ -35,7 +35,8 @@ class CollationAddTestCase(BaseTestGenerator):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
self.schema_details = schema_utils.create_schema(connection,
self.schema_name)

View File

@@ -22,7 +22,8 @@ def create_collation(server, schema_name, coll_name, db_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
pg_cursor.execute('CREATE COLLATION %s.%s FROM pg_catalog."POSIX"' %
(schema_name, coll_name))
@@ -46,7 +47,8 @@ def verify_collation(server, db_name, coll_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
# Get 'oid' from newly created database
pg_cursor.execute("SELECT coll.oid, coll.collname FROM"

View File

@@ -27,7 +27,8 @@ def create_fts_configuration(server, db_name, schema_name, fts_conf_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
query = "CREATE TEXT SEARCH CONFIGURATION " + schema_name + "." + fts_conf_name + \
@@ -69,7 +70,8 @@ def verify_fts_configuration(server, db_name, fts_conf_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
pg_cursor.execute(

View File

@@ -26,7 +26,8 @@ def create_fts_dictionary(server, db_name, schema_name, fts_dict_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
query = "CREATE TEXT SEARCH DICTIONARY %s.%s (TEMPLATE = simple)" % (
@@ -68,7 +69,8 @@ def verify_fts_dict(server, db_name, fts_dict_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
pg_cursor.execute(

View File

@@ -26,7 +26,8 @@ def create_fts_parser(server, db_name, schema_name, fts_parser_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
query = "DROP TEXT SEARCH PARSER IF EXISTS " + schema_name + "." + fts_parser_name
@@ -72,7 +73,8 @@ def verify_fts_parser(server, db_name, fts_parser_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
pg_cursor.execute(

View File

@@ -26,7 +26,8 @@ def create_fts_template(server, db_name, schema_name, fts_temp_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
query = "DROP TEXT SEARCH TEMPLATE IF EXISTS " + schema_name + "." + fts_temp_name
@@ -69,7 +70,8 @@ def verify_fts_template(server, db_name, fts_temp_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
pg_cursor.execute(

View File

@@ -23,7 +23,8 @@ def create_trigger_function(server, db_name, schema_name, func_name,
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
r_type = "event_trigger"
if server_version != 0:
@@ -53,7 +54,8 @@ def create_trigger_function_with_trigger(server, db_name, schema_name,
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
query = "CREATE FUNCTION "+schema_name+"."+func_name+"()" \
" RETURNS trigger LANGUAGE 'plpgsql' STABLE LEAKPROOF" \
@@ -78,7 +80,8 @@ def verify_trigger_function(server, db_name, func_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
pg_cursor.execute("SELECT pro.oid, pro.proname FROM"
" pg_proc pro WHERE pro.proname='%s'" %

View File

@@ -34,7 +34,8 @@ def create_package(server, db_name, schema_name, pkg_name, proc_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
query = "CREATE OR REPLACE PACKAGE %s.%s IS PROCEDURE %s(); END %s; " \
"CREATE OR REPLACE PACKAGE BODY %s.%s IS PROCEDURE %s() IS BEGIN " \
@@ -71,7 +72,8 @@ def verify_package(server, db_name, pkg_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
pg_cursor.execute("SELECT oid FROM pg_namespace WHERE nspname='%s'" %
pkg_name)

View File

@@ -34,7 +34,8 @@ def create_sequences(server, db_name, schema_name, sequence_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
query = "CREATE SEQUENCE %s.%s START 101" % (schema_name,
sequence_name)
@@ -70,7 +71,8 @@ def verify_sequence(server, db_name, sequence_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
pg_cursor.execute("select * from pg_class where relname='%s'" %
sequence_name)

View File

@@ -36,7 +36,8 @@ def create_column(server, db_name, schema_name, table_name, col_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
old_isolation_level = connection.isolation_level
connection.set_isolation_level(0)
pg_cursor = connection.cursor()
@@ -76,7 +77,8 @@ def verify_column(server, db_name, col_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
pg_cursor.execute("select * from pg_attribute where attname='%s'" %
col_name)

View File

@@ -37,7 +37,8 @@ def create_foreignkey(server, db_name, schema_name, local_table_name,
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
old_isolation_level = connection.isolation_level
connection.set_isolation_level(0)
pg_cursor = connection.cursor()
@@ -78,7 +79,8 @@ def verify_foreignkey(server, db_name, local_table_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
pg_cursor.execute(
"SELECT oid FROM pg_constraint where conname='%s_id_fkey'" %

View File

@@ -39,7 +39,8 @@ def create_index_constraint(server, db_name, schema_name, table_name,
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
old_isolation_level = connection.isolation_level
connection.set_isolation_level(0)
pg_cursor = connection.cursor()
@@ -76,7 +77,8 @@ def verify_index_constraint(server, db_name, table_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
pg_cursor.execute(
"SELECT oid FROM pg_constraint where conname='%s'" %

View File

@@ -39,7 +39,8 @@ def create_index(server, db_name, schema_name, table_name, index_name,
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
old_isolation_level = connection.isolation_level
connection.set_isolation_level(0)
pg_cursor = connection.cursor()
@@ -80,7 +81,8 @@ def verify_index(server, db_name, index_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
pg_cursor.execute("select * from pg_class where relname='%s'" %
index_name)

View File

@@ -36,7 +36,8 @@ def create_rule(server, db_name, schema_name, table_name, rule_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
old_isolation_level = connection.isolation_level
connection.set_isolation_level(0)
pg_cursor = connection.cursor()
@@ -76,7 +77,8 @@ def verify_rule(server, db_name, rule_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
pg_cursor.execute("select * from pg_rewrite where rulename='%s'" %
rule_name)

View File

@@ -34,7 +34,8 @@ def create_table(server, db_name, schema_name, table_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
old_isolation_level = connection.isolation_level
connection.set_isolation_level(0)
pg_cursor = connection.cursor()
@@ -75,7 +76,8 @@ def verify_table(server, db_name, table_id):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
pg_cursor.execute("SELECT * FROM pg_class tb WHERE tb.oid=%s" %
table_id)
@@ -107,7 +109,8 @@ def create_table_for_partition(server, db_name, schema_name, table_name,
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
old_isolation_level = connection.isolation_level
connection.set_isolation_level(0)
pg_cursor = connection.cursor()

View File

@@ -39,7 +39,8 @@ def create_trigger(server, db_name, schema_name, table_name, trigger_name,
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
old_isolation_level = connection.isolation_level
connection.set_isolation_level(0)
pg_cursor = connection.cursor()
@@ -80,7 +81,8 @@ def verify_trigger(server, db_name, trigger_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
pg_cursor.execute("SELECT oid FROM pg_trigger where tgname='%s'" %
trigger_name)

View File

@@ -34,7 +34,8 @@ class SchemaPutTestCase(BaseTestGenerator):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
self.schema_details = schema_utils.create_schema(connection,
self.schema_name)

View File

@@ -75,7 +75,8 @@ def verify_schemas(server, db_name, schema_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
pg_cursor.execute("SELECT * FROM pg_namespace sch"
" WHERE sch.nspname='%s'" % schema_name)

View File

@@ -36,7 +36,8 @@ def create_view(server, db_name, schema_name, sql_query, view_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
old_isolation_level = connection.isolation_level
connection.set_isolation_level(0)
pg_cursor = connection.cursor()
@@ -74,7 +75,8 @@ def verify_view(server, db_name, view_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
pg_cursor.execute("select oid from pg_class where relname='%s'" %
view_name)

View File

@@ -50,5 +50,6 @@ class DatabaseDeleteTestCase(BaseTestGenerator):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
utils.drop_database(connection, self.db_name)

View File

@@ -58,6 +58,7 @@ class ResourceGroupsAddTestCase(BaseTestGenerator):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
resource_groups_utils.delete_resource_group(connection,
self.resource_group)

View File

@@ -60,6 +60,7 @@ class ResourceGroupsDeleteTestCase(BaseTestGenerator):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
resource_groups_utils.delete_resource_group(connection,
self.resource_group)

View File

@@ -65,6 +65,7 @@ class ResourceGroupsPutTestCase(BaseTestGenerator):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
resource_groups_utils.delete_resource_group(connection,
self.resource_group_name)

View File

@@ -60,6 +60,7 @@ class ResourceGroupsGetTestCase(BaseTestGenerator):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
resource_groups_utils.delete_resource_group(connection,
self.resource_group)

View File

@@ -30,7 +30,8 @@ def create_resource_groups(server, resource_group_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
old_isolation_level = connection.isolation_level
connection.set_isolation_level(0)
pg_cursor = connection.cursor()
@@ -64,7 +65,8 @@ def verify_resource_group(server, resource_group_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
pg_cursor.execute("SELECT * FROM edb_resource_group WHERE "
"rgrpname='%s'" % resource_group_name)

View File

@@ -53,5 +53,6 @@ class LoginRoleAddTestCase(BaseTestGenerator):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
roles_utils.delete_role(connection, self.role_name)

View File

@@ -44,6 +44,7 @@ class LoginRoleDeleteTestCase(BaseTestGenerator):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
roles_utils.delete_role(connection, self.role_name)

View File

@@ -44,5 +44,6 @@ class LoginRoleGetTestCase(BaseTestGenerator):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
roles_utils.delete_role(connection, self.role_name)

View File

@@ -53,6 +53,7 @@ class LoginRolePutTestCase(BaseTestGenerator):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
roles_utils.delete_role(connection, self.role_name)

View File

@@ -36,7 +36,8 @@ def verify_role(server, role_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
pg_cursor.execute(
"SELECT * from pg_catalog.pg_roles pr WHERE pr.rolname='%s'" %
@@ -100,7 +101,8 @@ def create_role(server, role_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
pg_cursor.execute("CREATE ROLE %s LOGIN" % role_name)
connection.commit()

View File

@@ -68,5 +68,6 @@ class TableSpaceAddTestCase(BaseTestGenerator):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
tablespace_utils.delete_tablespace(connection, self.tablespace_name)

View File

@@ -62,6 +62,7 @@ class TableSpaceDeleteTestCase(BaseTestGenerator):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
tablespace_utils.delete_tablespace(connection, self.tablespace_name)

View File

@@ -62,5 +62,6 @@ class TablespaceGetTestCase(BaseTestGenerator):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
tablespace_utils.delete_tablespace(connection, self.tablespace_name)

View File

@@ -63,5 +63,6 @@ class TableSpaceUpdateTestCase(BaseTestGenerator):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
tablespace_utils.delete_tablespace(connection, self.tablespace_name)

View File

@@ -50,7 +50,8 @@ def create_tablespace(server, test_tablespace_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
old_isolation_level = connection.isolation_level
connection.set_isolation_level(0)
pg_cursor = connection.cursor()
@@ -88,7 +89,8 @@ def verify_table_space(server, test_tablespace_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
pg_cursor = connection.cursor()
pg_cursor.execute("SELECT * FROM pg_tablespace ts WHERE"
" ts.spcname='%s'" % test_tablespace_name)

View File

@@ -16,7 +16,8 @@ class TestCheckRecovery(BaseTestGenerator):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port']).cursor()
self.server['port'],
self.server['sslmode']).cursor()
if cursor is not None and cursor.connection is not None:
server_version = cursor.connection.server_version

View File

@@ -0,0 +1,39 @@
##########################################################################
#
# pgAdmin 4 - PostgreSQL Tools
#
# Copyright (C) 2013 - 2017, The pgAdmin Development Team
# This software is released under the PostgreSQL Licence
#
##########################################################################
from pgadmin.utils.route import BaseTestGenerator
from regression.python_test_utils import test_utils
class TestSSLConnection(BaseTestGenerator):
"""This will check if SSL is used in our database connection"""
scenarios = [
("Test for SSL connection", dict())
]
def runTest(self):
if hasattr(self, "ignore_test"):
return
supported_modes = ['require', 'verify-ca', 'verify-full']
if self.server['sslmode'] in supported_modes:
with test_utils.Database(self.server) as (
connection, database_name
):
cursor = connection.cursor()
cursor.execute("CREATE EXTENSION sslinfo")
connection.commit()
cursor.execute("SELECT ssl_is_used()")
is_ssl_used = cursor.fetchone()[0]
self.assertEquals(True, is_ssl_used)
else:
self.skipTest("Cannot run SSL connection check test "
"with '{0}' sslmode".format(
self.server['sslmode']
))

View File

@@ -28,7 +28,8 @@ class ConnectsToServerFeatureTest(BaseFeatureTest):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
test_utils.drop_database(connection, "acceptance_test_db")
test_utils.create_database(self.server, "acceptance_test_db")
test_utils.create_table(self.server, "acceptance_test_db", "test_table")
@@ -49,7 +50,8 @@ class ConnectsToServerFeatureTest(BaseFeatureTest):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
test_utils.drop_database(connection, "acceptance_test_db")
def _connects_to_server(self):

View File

@@ -31,7 +31,8 @@ class CopySelectedQueryResultsFeatureTest(BaseFeatureTest):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
test_utils.drop_database(connection, "acceptance_test_db")
test_utils.create_database(self.server, "acceptance_test_db")
test_utils.create_table(self.server, "acceptance_test_db", "test_table")
@@ -170,5 +171,6 @@ class CopySelectedQueryResultsFeatureTest(BaseFeatureTest):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
test_utils.drop_database(connection, "acceptance_test_db")

View File

@@ -31,7 +31,8 @@ class PGDataypeFeatureTest(BaseFeatureTest):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
test_utils.drop_database(connection, "acceptance_test_db")
test_utils.create_database(self.server, "acceptance_test_db")
@@ -50,7 +51,8 @@ class PGDataypeFeatureTest(BaseFeatureTest):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
test_utils.drop_database(connection, "acceptance_test_db")
def _connects_to_server(self):

View File

@@ -33,7 +33,8 @@ class QueryToolFeatureTest(BaseFeatureTest):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
test_utils.drop_database(connection, "acceptance_test_db")
test_utils.create_database(self.server, "acceptance_test_db")
self.page.wait_for_spinner_to_disappear()
@@ -132,7 +133,8 @@ class QueryToolFeatureTest(BaseFeatureTest):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
test_utils.drop_database(connection, "acceptance_test_db")
def _connects_to_server(self):

View File

@@ -23,7 +23,8 @@ class TableDdlFeatureTest(BaseFeatureTest):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
test_utils.drop_database(connection, "acceptance_test_db")
test_utils.create_database(self.server, "acceptance_test_db")
@@ -51,5 +52,6 @@ class TableDdlFeatureTest(BaseFeatureTest):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
test_utils.drop_database(connection, "acceptance_test_db")

View File

@@ -80,7 +80,8 @@ CREATE TABLE public.defaults
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
test_utils.drop_database(connection, "acceptance_test_db")
test_utils.create_database(self.server, "acceptance_test_db")
@@ -114,7 +115,8 @@ CREATE TABLE public.defaults
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
test_utils.drop_database(connection, "acceptance_test_db")
@staticmethod

View File

@@ -39,7 +39,8 @@ class CheckForXssFeatureTest(BaseFeatureTest):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
test_utils.drop_database(connection, "acceptance_test_db")
test_utils.create_database(self.server, "acceptance_test_db")
test_utils.create_table(self.server, "acceptance_test_db",
@@ -70,7 +71,8 @@ class CheckForXssFeatureTest(BaseFeatureTest):
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.server['port'],
self.server['sslmode'])
test_utils.drop_database(connection, "acceptance_test_db")
def _connects_to_server(self):

View File

@@ -25,13 +25,16 @@ SERVER_GROUP = test_setup.config_data['server_group']
file_name = os.path.realpath(__file__)
def get_db_connection(db, username, password, host, port):
def get_db_connection(db, username, password, host, port, sslmode="prefer"):
"""This function returns the connection object of psycopg"""
connection = psycopg2.connect(database=db,
user=username,
password=password,
host=host,
port=port)
connection = psycopg2.connect(
database=db,
user=username,
password=password,
host=host,
port=port,
sslmode=sslmode
)
return connection
@@ -116,7 +119,8 @@ def create_database(server, db_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
old_isolation_level = connection.isolation_level
connection.set_isolation_level(0)
pg_cursor = connection.cursor()
@@ -154,7 +158,8 @@ def create_table(server, db_name, table_name):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
old_isolation_level = connection.isolation_level
connection.set_isolation_level(0)
pg_cursor = connection.cursor()
@@ -191,7 +196,8 @@ def create_table_with_query(server, db_name, query):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
old_isolation_level = connection.isolation_level
connection.set_isolation_level(0)
pg_cursor = connection.cursor()
@@ -211,7 +217,8 @@ def create_constraint(
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
old_isolation_level = connection.isolation_level
connection.set_isolation_level(0)
pg_cursor = connection.cursor()
@@ -234,7 +241,8 @@ def create_debug_function(server, db_name, function_name="test_func"):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
old_isolation_level = connection.isolation_level
connection.set_isolation_level(0)
pg_cursor = connection.cursor()
@@ -267,7 +275,8 @@ def drop_debug_function(server, db_name, function_name="test_func"):
server['username'],
server['db_password'],
server['host'],
server['port'])
server['port'],
server['sslmode'])
old_isolation_level = connection.isolation_level
connection.set_isolation_level(0)
pg_cursor = connection.cursor()
@@ -390,7 +399,8 @@ def create_parent_server_node(server_info):
server_info['username'],
server_info['db_password'],
server_info['host'],
server_info['port'])
server_info['port'],
server_info['sslmode'])
schema = regression.schema_utils.create_schema(connection, schema_name)
add_schema_to_parent_node_dict(srv_id, db_id, schema[0],
@@ -413,7 +423,8 @@ def delete_test_server(tester):
servers_dict['username'],
servers_dict['db_password'],
servers_dict['host'],
servers_dict['port'])
servers_dict['port'],
servers_dict['sslmode'])
database_name = database["db_name"]
# Drop database
drop_database(connection, database_name)
@@ -422,7 +433,8 @@ def delete_test_server(tester):
servers_dict['username'],
servers_dict['db_password'],
servers_dict['host'],
servers_dict['port'])
servers_dict['port'],
servers_dict['sslmode'])
# Delete role
regression.roles_utils.delete_role(connection,
role["role_name"])
@@ -431,7 +443,8 @@ def delete_test_server(tester):
servers_dict['username'],
servers_dict['db_password'],
servers_dict['host'],
servers_dict['port'])
servers_dict['port'],
servers_dict['sslmode'])
# Delete tablespace
regression.tablespace_utils.delete_tablespace(
connection, tablespace["tablespace_name"])
@@ -462,7 +475,7 @@ def get_db_server(sid):
conn = sqlite3.connect(config.TEST_SQLITE_PATH)
cur = conn.cursor()
server = cur.execute('SELECT name, host, port, maintenance_db,'
' username FROM server where id=%s' % sid)
' username, ssl_mode FROM server where id=%s' % sid)
server = server.fetchone()
if server:
name = server[0]
@@ -470,6 +483,7 @@ def get_db_server(sid):
db_port = server[2]
db_name = server[3]
username = server[4]
ssl_mode = server[5]
config_servers = test_setup.config_data['server_credentials']
# Get the db password from config file for appropriate server
db_password = get_db_password(config_servers, name, host, db_port)
@@ -479,7 +493,8 @@ def get_db_server(sid):
username,
db_password,
host,
db_port)
db_port,
ssl_mode)
conn.close()
return connection
@@ -625,19 +640,23 @@ class Database:
def __enter__(self):
self.name = "test_db_{0}".format(str(uuid.uuid4())[0:7])
self.maintenance_connection = get_db_connection(self.server['db'],
self.server[
'username'],
self.server[
'db_password'],
self.server['host'],
self.server['port'])
self.maintenance_connection = get_db_connection(
self.server['db'],
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'],
self.server['sslmode']
)
create_database(self.server, self.name)
self.connection = get_db_connection(self.name,
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'])
self.connection = get_db_connection(
self.name,
self.server['username'],
self.server['db_password'],
self.server['host'],
self.server['port'],
self.server['sslmode']
)
return self.connection, self.name
def __exit__(self, type, value, traceback):