Skip to content

Commit 21770c2

Browse files
committed
Pipeline for oracle_db thick mode switch
1 parent 9950c9c commit 21770c2

File tree

2 files changed

+96
-8
lines changed

2 files changed

+96
-8
lines changed
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
name: Oracle thick client mode tests
2+
3+
on: [push, pull_request]
4+
5+
env:
6+
DB_MODULE: oracledb
7+
DB_NAME: db
8+
DB_USER: db_user
9+
DB_PASS: pass
10+
DB_HOST: 127.0.0.1
11+
DB_PORT: 1521
12+
LIB_DIR: /opt/oracle/instantclient_21_4
13+
14+
jobs:
15+
tests:
16+
runs-on: ubuntu-latest
17+
services:
18+
oracle:
19+
image: gvenzl/oracle-free:latest
20+
env:
21+
ORACLE_PASSWORD: ${{ env.DB_PASS }}
22+
ORACLE_DATABASE: ${{ env.DB_NAME }}
23+
APP_USER: ${{ env.DB_USER }}
24+
APP_USER_PASSWORD: ${{ env.DB_PASS }}
25+
ports:
26+
- 1521:1521
27+
# Provide healthcheck script options for startup
28+
options: --health-cmd healthcheck.sh --health-interval 10s --health-timeout 5s --health-retries 10
29+
30+
steps:
31+
- name: Install Oracle instant client
32+
run: |
33+
cd /opt/
34+
sudo mkdir /opt/oracle
35+
sudo wget https://download.oracle.com/otn_software/linux/instantclient/214000/instantclient-basic-linux.x64-21.4.0.0.0dbru.zip
36+
sudo unzip instantclient_21_4
37+
38+
- name: Check out repository code
39+
uses: actions/checkout@v3
40+
41+
- uses: actions/setup-python@v4
42+
with:
43+
python-version: '3.8.14'
44+
45+
- name: Setup Python dependencies
46+
run: |
47+
python -m pip install --upgrade pip
48+
pip install -r requirements.txt
49+
50+
- name: Install Development/Checked out version of DatabaseLibrary
51+
run: |
52+
pip install -e ${{ github.workspace }}
53+
54+
- name: Setup Python DB module
55+
run: |
56+
pip install ${{ env.DB_MODULE }}
57+
58+
- name: Launch RF Tests
59+
working-directory: ./test
60+
run: >-
61+
robot
62+
-d results
63+
--xunit result.xml
64+
--loglevel DEBUG:INFO
65+
-v DB_MODULE:${{ env.DB_MODULE }}
66+
-v DB_NAME:${{ env.DB_NAME }}
67+
-v DB_USER:${{ env.DB_USER }}
68+
-v DB_PASS:${{ env.DB_PASS }}
69+
-v DB_HOST:${{ env.DB_HOST }}
70+
-v DB_PORT:${{ env.DB_PORT }}
71+
-v ORACLE_LIB_DIR: ${{ env.LIB_DIR }}
72+
tests/custom_db_tests/oracle_thick_mode.robot
73+
74+
- name: Upload Robot Logs
75+
if: ${{ always() }}
76+
uses: actions/upload-artifact@v3
77+
with:
78+
name: log-files
79+
path: ./test/results/

test/tests/custom_db_tests/oracle_thick_mode.robot

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,15 @@ Documentation Tests of switching between thin and thick mode of oracledb clie
66
Resource ../../resources/common.resource
77

88

9+
*** Variables ***
10+
${DB_MODULE} oracledb
11+
${DB_HOST} 127.0.0.1
12+
${DB_PORT} 1521
13+
${DB_PASS} pass
14+
${DB_USER} db_user
15+
${DB_NAME} db
16+
${ORACLE_LIB_DIR} ${EMPTY}
17+
918
*** Test Cases ***
1019
Thin Mode - Default
1120
[Documentation] No mode specified --> thin mode is used
@@ -21,7 +30,7 @@ Thick Mode Without Client Dir Specified
2130

2231
Thick Mode With Client Dir Specified
2332
[Documentation] Client dir specified --> oracledb will search it in this place
24-
Connect And Run Simple Query driverMode=thick,lib_dir=
33+
Connect And Run Simple Query driverMode=thick,lib_dir=${ORACLE_LIB_DIR}
2534

2635
Wrong Mode
2736
[Documentation] Wrong mode --> proper error message from the library
@@ -31,20 +40,20 @@ Wrong Mode
3140
Thick Mode With Wrong Client Dir
3241
[Documentation] Wrong mode --> proper error message from oracledb module
3342
Run Keyword And Expect Error expected_error
34-
... Connect And Run Simple Query driverMode=thick,lib_dir=C:\WRONG
43+
... Connect And Run Simple Query driverMode=thick,lib_dir=C:/WRONG
3544

3645

3746
*** Keywords ***
3847
Connect And Run Simple Query
3948
[Documentation] Connect using usual params and client mode if provided
4049
[Arguments] &{Extra params}
4150
Connect To Database
42-
... oracledb
43-
... 127.0.0.1
44-
... 1521
45-
... db
46-
... db_user
47-
... pass
51+
... ${DB_MODULE}
52+
... ${DB_NAME}
53+
... ${DB_USER}
54+
... ${DB_PASS}
55+
... ${DB_HOST}
56+
... ${DB_PORT}
4857
... &{Extra params}
4958
Create Person Table
5059
Query SELECT * FROM person

0 commit comments

Comments
 (0)