diff --git a/test/resources/common.resource b/test/resources/common.resource index 6b78a1be..6f6cc170 100644 --- a/test/resources/common.resource +++ b/test/resources/common.resource @@ -24,13 +24,14 @@ ${DB_DRIVER} ODBC Driver 18 for SQL Server Connect To DB [Documentation] Connects to the database based on the current DB module under test ... and connection params set in global variables + [Arguments] ${alias}=${None} IF "${DB_MODULE_MODE}" == "custom" IF "${DB_MODULE}" == "sqlite3" Remove File ${DBName}.db - Connect To Database Using Custom Params sqlite3 database="./${DBName}.db", isolation_level=None + Connect To Database Using Custom Params sqlite3 database="./${DBName}.db", isolation_level=None alias=${alias} ELSE ${Connection String}= Build Connection String - Connect To Database Using Custom Connection String ${DB_MODULE} ${Connection String} + Connect To Database Using Custom Connection String ${DB_MODULE} ${Connection String} alias=${alias} END ELSE IF "${DB_MODULE_MODE}" == "standard" IF "${DB_MODULE}" == "pyodbc" @@ -42,6 +43,7 @@ Connect To DB ... ${DB_HOST} ... ${DB_PORT} ... dbDriver=${DB_DRIVER} + ... alias=${alias} ELSE Connect To Database ... ${DB_MODULE} @@ -50,6 +52,7 @@ Connect To DB ... ${DB_PASS} ... ${DB_HOST} ... ${DB_PORT} + ... alias=${alias} END ELSE Fail Unexpected mode - ${DB_MODULE_MODE} diff --git a/test/tests/common_tests/aliased_connection.robot b/test/tests/common_tests/aliased_connection.robot new file mode 100644 index 00000000..84ea289d --- /dev/null +++ b/test/tests/common_tests/aliased_connection.robot @@ -0,0 +1,40 @@ +*** Settings *** +Resource ../../resources/common.resource +Suite Setup Create Person Table +Suite Teardown Drop Tables Person And Foobar +Test Teardown Disconnect From All Databases + + +*** Test Cases *** +Connections Can Be Aliased + Connect To DB # default alias + Connect To DB alias=second + +Default Alias Can Be Empty + Connect To DB # default alias + Query SELECT * FROM person + Connect To DB alias=second + Query SELECT * FROM person + Query SELECT * FROM person alias=second + +Switch From Default And Disconnect + Connect To DB # default alias + Connect To DB alias=second + Switch Database second + Query SELECT * FROM person # query with 'second' connection + Disconnect From Database alias=second + Query SELECT * FROM person # query with 'default' connection + +Disconnect Not Existing Alias + Connect To DB # default alias + Disconnect From Database alias=idontexist # silent warning + Run Keyword And Expect Error No open database connection to close + ... Disconnect From Database alias=idontexist error_if_no_connection=${True} + # default alias exist and can be closed + Disconnect From Database error_if_no_connection=${True} + +Switch Not Existing Alias + Run Keyword And Expect Error Non-existing index or alias 'second' + ... Switch Database second + +# To be done - check if all methods that accept aliases works with them