aboutsummaryrefslogtreecommitdiffstats
path: root/csit/db-migrator
diff options
context:
space:
mode:
Diffstat (limited to 'csit/db-migrator')
-rw-r--r--csit/db-migrator/plans/setup.sh26
-rw-r--r--csit/db-migrator/plans/teardown.sh22
-rw-r--r--csit/db-migrator/plans/testplan.txt3
-rw-r--r--csit/db-migrator/tests/db-migrator-test.robot34
4 files changed, 85 insertions, 0 deletions
diff --git a/csit/db-migrator/plans/setup.sh b/csit/db-migrator/plans/setup.sh
new file mode 100644
index 00000000..31d93111
--- /dev/null
+++ b/csit/db-migrator/plans/setup.sh
@@ -0,0 +1,26 @@
+echo "Uninstall docker-py and reinstall docker."
+python3 -m pip uninstall -y docker-py
+python3 -m pip uninstall -y docker
+python3 -m pip install -U docker
+python3 -m pip install -U robotframework-databaselibrary
+python3 -m pip install psycopg2-binary
+
+sudo apt-get -y install libxml2-utils
+
+source "${SCRIPTS}"/get-versions.sh
+
+cd "${SCRIPTS}"
+docker-compose -f "${SCRIPTS}"/compose-postgres.yml up -d
+
+sleep 15
+unset http_proxy https_proxy
+
+POSTGRES_IP=$(get-instance-ip.sh postgres)
+POLICY_API_IP=$(get-instance-ip.sh policy-api)
+
+echo POSTGRES IP IS "${POSTGRES_IP}"
+echo POLICY_API_IP IS "${POLICY_API_IP}"
+
+ROBOT_VARIABLES=""
+ROBOT_VARIABLES="${ROBOT_VARIABLES} -v POSTGRES_IP:${POSTGRES_IP}"
+ROBOT_VARIABLES="${ROBOT_VARIABLES} -v POLICY_API_IP:${POLICY_API_IP}" \ No newline at end of file
diff --git a/csit/db-migrator/plans/teardown.sh b/csit/db-migrator/plans/teardown.sh
new file mode 100644
index 00000000..30a0f48d
--- /dev/null
+++ b/csit/db-migrator/plans/teardown.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+# ============LICENSE_START=======================================================
+# Copyright (C) 2022 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+docker logs postgres
+
+docker-compose -f ${SCRIPTS}/compose-postgres.yml down -v \ No newline at end of file
diff --git a/csit/db-migrator/plans/testplan.txt b/csit/db-migrator/plans/testplan.txt
new file mode 100644
index 00000000..4d281179
--- /dev/null
+++ b/csit/db-migrator/plans/testplan.txt
@@ -0,0 +1,3 @@
+# Test suites are relative paths under [policy/docker.git]/csit/[project]/tests.
+# Place the suites in run order.
+db-migrator-test.robot
diff --git a/csit/db-migrator/tests/db-migrator-test.robot b/csit/db-migrator/tests/db-migrator-test.robot
new file mode 100644
index 00000000..44cb1553
--- /dev/null
+++ b/csit/db-migrator/tests/db-migrator-test.robot
@@ -0,0 +1,34 @@
+*** Settings ***
+Suite Setup Connect To Database psycopg2 ${DB_NAME} ${DB_USERNAME} ${DB_PASSWORD} ${POSTGRES_IP} ${DB_PORT}
+Suite Teardown Disconnect From Database
+Library DatabaseLibrary
+Library String
+Library RequestsLibrary
+Library OperatingSystem
+Library json
+Resource ${CURDIR}/../../common-library.robot
+
+*** Variables ***
+${DB_NAME} = policyadmin
+${DB_USERNAME} = policy_user
+${DB_PASSWORD} = policy_user
+${DB_PORT} = 5432
+${PGPASSWORD} = policy_user
+
+*** Keywords ***
+GetReq
+ [Arguments] ${url}
+ ${auth}= PolicyAdminAuth
+ ${resp}= PerformGetRequest ${POLICY_API_IP} ${url} 200 null ${auth}
+ [return] ${resp}
+
+*** Test Cases ***
+Test Connection
+ ${output} = Execute SQL String SELECT datname FROM pg_database WHERE datname='policyadmin';
+ Log ${output}
+ Should Be Equal As Strings ${output} None
+
+Healthcheck
+ [Documentation] Verify policy api health check
+ ${resp}= GetReq /policy/api/v1/healthcheck
+ Should Be Equal As Strings ${resp.json()['code']} 200 \ No newline at end of file