Skip to content

Commit

Permalink
Add tests for dancer app with mysql database
Browse files Browse the repository at this point in the history
Signed-off-by: Petr "Stone" Hracek <[email protected]>
  • Loading branch information
phracek committed Mar 26, 2024
1 parent 3c31b2b commit 9facc2f
Show file tree
Hide file tree
Showing 2 changed files with 75 additions and 1 deletion.
10 changes: 9 additions & 1 deletion openshift/templates/dancer-mysql-persistent.json
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,8 @@
"name": "${DATABASE_SERVICE_NAME}",
"annotations": {
"description": "Defines how to deploy the database",
"template.alpha.openshift.io/wait-for-ready": "true"
"template.alpha.openshift.io/wait-for-ready": "true",
"image.openshift.io/triggers": "[{\"from\":{\"kind\":\"ImageStreamTag\",\"name\":\"mysql:${MYSQL_VERSION}\"},\"fieldPath\": \"spec.template.spec.containers[0].image\"}]"
}
},
"spec": {
Expand Down Expand Up @@ -412,6 +413,13 @@
"required": true,
"value": "5.30-ubi8"
},
{
"name": "MYSQL_VERSION",
"displayName": "Version of MySQL Image",
"description": "Version of MySQL image to be used (8.0-el8, 8.0-el9, or latest).",
"value": "8.0-el8",
"required": true
},
{
"name": "MEMORY_LIMIT",
"displayName": "Memory Limit",
Expand Down
66 changes: 66 additions & 0 deletions tests/test_dancer_mysql.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
import os

import pytest
from pathlib import Path

from container_ci_suite.openshift import OpenShiftAPI

test_dir = Path(os.path.abspath(os.path.dirname(__file__)))

VERSION=os.getenv("SINGLE_VERSION")
if not VERSION:
VERSION="5.32-ubi8"

class TestDancerAppExTemplate:

def setup_method(self):
self.oc_api = OpenShiftAPI(pod_name_prefix="dancer-example")
json_raw_file = self.oc_api.get_raw_url_for_json(
container="s2i-perl-container", dir="imagestreams", filename="perl-rhel.json"
)
self.oc_api.import_is(path=json_raw_file, name="perl")
json_raw_file = self.oc_api.get_raw_url_for_json(
container="mysq-container", dir="imagestreams", filename="mysql-rhel.json"
)
self.oc_api.import_is(path=json_raw_file, name="mysql")

def teardown_method(self):
self.oc_api.delete_project()

def test_template_inside_cluster(self):
expected_output = "Welcome to your Dancer application"
template_json = self.oc_api.get_raw_url_for_json(
container="dancer-ex", dir="openshift/templates", filename="dancer-mysql-persistent.json"
)
assert self.oc_api.deploy_template(
template=template_json, name_in_template="dancer-example", expected_output=expected_output,
openshift_args=[
"SOURCE_REPOSITORY_REF=master",
f"PERL_VERSION={VERSION}",
"NAME=dancer-example",
"MYSQL=8.0-el8"
]
)
assert self.oc_api.template_deployed(name_in_template="dancer-example")
assert self.oc_api.check_response_inside_cluster(
name_in_template="dancer-example", expected_output=expected_output
)

def test_template_by_request(self):
expected_output = "Welcome to your Dancer application"
template_json = self.oc_api.get_raw_url_for_json(
container="dancer-ex", dir="openshift/templates", filename="dancer-mysql-persistent.json"
)
assert self.oc_api.deploy_template(
template=template_json, name_in_template="dancer-example", expected_output=expected_output,
openshift_args=[
"SOURCE_REPOSITORY_REF=master",
f"PERL_VERSION={VERSION}",
"NAME=dancer-example",
"MYSQL=8.0-el8"
]
)
assert self.oc_api.template_deployed(name_in_template="dancer-example")
assert self.oc_api.check_response_outside_cluster(
name_in_template="dancer-example", expected_output=expected_output
)

0 comments on commit 9facc2f

Please sign in to comment.