Skip to content

Commit 7b8a3bc

Browse files
committed
Add tests for Jaydebeapi
1 parent 012ae63 commit 7b8a3bc

11 files changed

Lines changed: 42 additions & 44 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@ report.html
1313
venv
1414
.runNumber
1515
.DS_Store
16+
test/resources/ojdbc17.jar

.vscode/launch.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@
9393
"Teradata",
9494
"MySQL_pymysql",
9595
"MySQL_pyodbc",
96+
"Oracle_JDBC",
9697
"MSSQL",
9798
"Excel",
9899
"Excel_RW",

test/resources/common.resource

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@ ${DB_USER} db_user
2121
# used for MySQL via PyODBC only
2222
${DB_DRIVER} ODBC Driver 18 for SQL Server
2323

24+
# Oracle via Jaydebeapi
25+
${DRIVER_PATH} ${CURDIR}/ojdbc17.jar
26+
${DRIVER_CLASSNAME} oracle.jdbc.driver.OracleDriver
27+
&{DRIVER_ARGS} user=${DB_USER} password=${DB_PASS}
28+
${JDBC_URL} jdbc:oracle:thin:@${DB_HOST}:${DB_PORT}/${DB_NAME}
29+
2430

2531
*** Keywords ***
2632
Connect To DB
@@ -36,6 +42,10 @@ Connect To DB
3642
Remove File ${DBName}.db
3743
Connect To Database sqlite3 database=./${DBName}.db isolation_level=${None}
3844
... &{DB_KWARGS}
45+
ELSE IF "${DB_MODULE}" == "jaydebeapi"
46+
Connect To Database ${DB_MODULE} jclassname=${DRIVER_CLASSNAME} url=${JDBC_URL}
47+
... driver_args=${DRIVER_ARGS} jars=${DRIVER_PATH} &{DB_KWARGS}
48+
Set Auto Commit False alias=${alias}
3949
ELSE
4050
${Connection String}= Build Connection String
4151
Connect To Database Using Custom Connection String ${DB_MODULE} ${Connection String} &{DB_KWARGS}

test/tests/__init__.robot

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,14 @@ Set DB Variables
7373
Set Global Variable ${DB_NAME} db
7474
Set Global Variable ${DB_USER} db_user
7575
Set Global Variable ${DB_PASS} pass
76+
ELSE IF "${GLOBAL_DB_SELECTOR}" == "Oracle_JDBC"
77+
Set Global Variable ${DB_MODULE_MODE} custom
78+
Set Global Variable ${DB_MODULE} jaydebeapi
79+
Set Global Variable ${DB_HOST} 127.0.0.1
80+
Set Global Variable ${DB_PORT} 1521
81+
Set Global Variable ${DB_NAME} db
82+
Set Global Variable ${DB_USER} db_user
83+
Set Global Variable ${DB_PASS} pass
7684
ELSE IF "${GLOBAL_DB_SELECTOR}" == "MSSQL"
7785
Set Global Variable ${DB_MODULE_MODE} standard
7886
Set Global Variable ${DB_MODULE} pymssql

test/tests/common_tests/assertion_error_messages.robot

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,13 @@ Check Row Count With Assertion Engine Fails With Message
120120

121121
Check Query Result With Assertion Engine Fails
122122
${expected value}= Set Variable ${5}
123+
IF "${DB_MODULE}" == "jaydebeapi"
124+
VAR ${Num Type}= jlong
125+
ELSE
126+
VAR ${Num Type}= int
127+
END
123128
${expected error}= Catenate
124-
... Wrong query result: '1' (int) should be '${expected value}' (int)
129+
... Wrong query result: '1' (${Num Type}) should be '${expected value}' (int)
125130
Run Keyword And Expect Error
126131
... ${expected error}
127132
... Check Query Result ${Existing Select} equals ${expected value}

test/tests/common_tests/basic_tests.robot

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ Test Teardown Drop Tables Person And Foobar
1010

1111

1212
*** Test Cases ***
13-
SQL Statement Ending With Semicolon Works
13+
SQL Statement Ending Without Semicolon Works
1414
Query SELECT * FROM person
1515

16-
SQL Statement Ending Without Semicolon Works
16+
SQL Statement Ending With Semicolon Works
1717
Query SELECT * FROM person;
1818

1919
Create Person Table

test/tests/common_tests/connection_params.robot

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Documentation Tests for the basic _Connect To Database_ keyword - with and
44
55
Resource ../../resources/common.resource
66

7-
Test Setup Skip If $DB_MODULE == "sqlite3"
7+
Test Setup Skip If $DB_MODULE == "sqlite3" or $DB_MODULE == "jaydebeapi"
88
Test Teardown Disconnect From Database
99

1010
*** Variables ***

test/tests/common_tests/custom_connection.robot

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ Connect Using Custom Params
3636
${Params}= Catenate
3737
... database="./${DBName}.db",
3838
... isolation_level=None
39+
ELSE IF "${DB_MODULE}" == "jaydebeapi"
40+
Skip Connecting with custom params for Jaydebeapi is already done in all other tests
3941
ELSE
4042
${Params}= Catenate
4143
... database='${DB_NAME}',

test/tests/common_tests/description.robot

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@ Verify Person Description
1616
Length Should Be ${queryResults} 3
1717
IF "${DB_MODULE}" == "oracledb"
1818
Should Be Equal As Strings ${queryResults}[0] ('ID', <DbType DB_TYPE_NUMBER>, 39, None, 38, 0, False)
19-
Should Be Equal As Strings
20-
... ${queryResults}[1]
21-
... ('FIRST_NAME', <DbType DB_TYPE_VARCHAR>, 20, 20, None, None, True)
22-
Should Be Equal As Strings
23-
... ${queryResults}[2]
24-
... ('LAST_NAME', <DbType DB_TYPE_VARCHAR>, 20, 20, None, None, True)
19+
Should Be Equal As Strings ${queryResults}[1] ('FIRST_NAME', <DbType DB_TYPE_VARCHAR>, 20, 20, None, None, True)
20+
Should Be Equal As Strings ${queryResults}[2] ('LAST_NAME', <DbType DB_TYPE_VARCHAR>, 20, 20, None, None, True)
21+
ELSE IF "${DB_MODULE}" == "jaydebeapi"
22+
Should Be Equal As Strings ${queryResults}[0] ('ID', DBAPITypeObject('DECIMAL', 'NUMERIC'), 39, 39, 38, 0, 0)
23+
Should Be Equal As Strings ${queryResults}[1] ('FIRST_NAME', DBAPITypeObject('CHAR', 'NCHAR', 'NVARCHAR', 'VARCHAR', 'OTHER'), 20, 20, 20, 0, 1)
24+
Should Be Equal As Strings ${queryResults}[2] ('LAST_NAME', DBAPITypeObject('CHAR', 'NCHAR', 'NVARCHAR', 'VARCHAR', 'OTHER'), 20, 20, 20, 0, 1)
2525
ELSE IF "${DB_MODULE}" == "sqlite3"
2626
Should Be Equal As Strings ${queryResults}[0] ('id', None, None, None, None, None, None)
2727
Should Be Equal As Strings ${queryResults}[1] ('FIRST_NAME', None, None, None, None, None, None)
@@ -68,9 +68,10 @@ Verify Foobar Description
6868
Length Should Be ${queryResults} 2
6969
IF "${DB_MODULE}" == "oracledb"
7070
Should Be Equal As Strings ${queryResults}[0] ('ID', <DbType DB_TYPE_NUMBER>, 39, None, 38, 0, False)
71-
Should Be Equal As Strings
72-
... ${queryResults}[1]
73-
... ('FIRST_NAME', <DbType DB_TYPE_VARCHAR>, 30, 30, None, None, False)
71+
Should Be Equal As Strings ${queryResults}[1] ('FIRST_NAME', <DbType DB_TYPE_VARCHAR>, 30, 30, None, None, False)
72+
ELSE IF "${DB_MODULE}" == "jaydebeapi"
73+
Should Be Equal As Strings ${queryResults}[0] ('ID', DBAPITypeObject('DECIMAL', 'NUMERIC'), 39, 39, 38, 0, 0)
74+
Should Be Equal As Strings ${queryResults}[1] ('FIRST_NAME', DBAPITypeObject('CHAR', 'NCHAR', 'NVARCHAR', 'VARCHAR', 'OTHER'), 30, 30, 30, 0, 0)
7475
ELSE IF "${DB_MODULE}" == "sqlite3"
7576
Should Be Equal As Strings ${queryResults}[0] ('id', None, None, None, None, None, None)
7677
Should Be Equal As Strings ${queryResults}[1] ('FIRST_NAME', None, None, None, None, None, None)

test/tests/common_tests/query_params.robot

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Connect To DB And Build Query
2121

2222
Build Query Strings With Params
2323
${placeholder}= Set Variable %s
24-
IF "${DB_MODULE}" in ["oracledb", "cx_Oracle"]
24+
IF "${DB_MODULE}" in ["oracledb", "cx_Oracle", "jaydebeapi"]
2525
${placeholder}= Set Variable :id
2626
ELSE IF "${DB_MODULE}" in ["sqlite3", "pyodbc"]
2727
${placeholder}= Set Variable ?

0 commit comments

Comments
 (0)