From bc6a0bb520e599410556d925779326c2464c76e1 Mon Sep 17 00:00:00 2001 From: "Petr \"Stone\" Hracek" Date: Thu, 9 Oct 2025 14:06:30 +0200 Subject: [PATCH 1/3] GitHub Action was deleted by https://github.com/sclorg/django-ex/pull/226 but we need it for tests. So let's get it back Signed-off-by: Petr "Stone" Hracek --- .github/workflows/openshift-pytest.yml | 30 ++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 .github/workflows/openshift-pytest.yml diff --git a/.github/workflows/openshift-pytest.yml b/.github/workflows/openshift-pytest.yml new file mode 100644 index 000000000..d408fd5d3 --- /dev/null +++ b/.github/workflows/openshift-pytest.yml @@ -0,0 +1,30 @@ +on: + issue_comment: + types: + - created +jobs: + openshift-tests: + # This job only runs for '[test] pull request comments by owner, member + name: "RHEL9 tests: imagestream ${{ matrix.version }}" + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + version: [ "3.6-ubi8", "3.9-ubi8", "3.11-ubi8", "3.12-ubi8", "3.9-ubi9", "3.11-ubi9", "3.12-ubi9", "3.12-minimal-ubi9", "3.12-minimal-ubi10" ] + + if: | + github.event.issue.pull_request + && contains(github.event.comment.body, '[test]') + && contains(fromJson('["OWNER", "MEMBER"]'), github.event.comment.author_association) + steps: + - uses: sclorg/testing-farm-as-github-action@main + with: + api_key: ${{ secrets.TF_INTERNAL_API_KEY }} + compose: "RHEL-9.6.0-Nightly" + git_url: "https://gitlab.cee.redhat.com/platform-eng-core-services/sclorg-tmt-plans" + git_ref: "master" + tf_scope: "private" + tmt_plan_regex: "rhel9-openshift-pytest" + update_pull_request_status: true + pull_request_status_name: "RHEL9-OpenShift-4 - imagestream test ${{ matrix.version }}" + variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};REPO_NAME=${{ github.repository }};PR_NUMBER=${{ github.event.issue.number }};OS=rhel9;SINGLE_VERSION=${{ matrix.version }};TEST_NAME=test-openshift-pytest" From bd27efe90e5300c5c5acb885c930addcdcc8e91a Mon Sep 17 00:00:00 2001 From: "Petr \"Stone\" Hracek" Date: Thu, 9 Oct 2025 14:10:23 +0200 Subject: [PATCH 2/3] Add tests back it again Signed-off-by: Petr "Stone" Hracek --- tests/Makefile | 4 +++ tests/test_django.py | 44 +++++++++++++++++++++++++++++ tests/test_django_postgresql.py | 50 +++++++++++++++++++++++++++++++++ 3 files changed, 98 insertions(+) create mode 100644 tests/Makefile create mode 100644 tests/test_django.py create mode 100644 tests/test_django_postgresql.py diff --git a/tests/Makefile b/tests/Makefile new file mode 100644 index 000000000..ec52656af --- /dev/null +++ b/tests/Makefile @@ -0,0 +1,4 @@ +.PHONY: test-openshift-pytest +test-openshift-pytest: + cd tests && PYTHONPATH=$(CURDIR) python3.12 -m pytest -s -rA --showlocals -vv test_django*.py + diff --git a/tests/test_django.py b/tests/test_django.py new file mode 100644 index 000000000..018736236 --- /dev/null +++ b/tests/test_django.py @@ -0,0 +1,44 @@ +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="3.11-ubi8" + +class TestDjangoAppExTemplate: + + def setup_method(self): + self.oc_api = OpenShiftAPI(pod_name_prefix="django-example") + json_raw_file = self.oc_api.get_raw_url_for_json( + container="s2i-python-container", dir="imagestreams", filename="python-rhel.json" + ) + self.oc_api.import_is(path=json_raw_file, name="python", skip_check=True) + + def teardown_method(self): + self.oc_api.delete_project() + + def test_template_inside_cluster(self): + branch_to_test = "4.2.x" + if VERSION == "3.9-ubi9": + branch_to_test = "2.2.x" + elif VERSION == "3.6-ubi8": + branch_to_test = "master" + expected_output = "Welcome to your Django application" + template_json = self.oc_api.get_raw_url_for_json( + container="django-ex", branch=branch_to_test, dir="openshift/templates", filename="django.json" + ) + assert self.oc_api.deploy_template( + template=template_json, name_in_template="django-example", expected_output=expected_output, + openshift_args=[f"SOURCE_REPOSITORY_REF={branch_to_test}", f"PYTHON_VERSION={VERSION}", "NAME=django-example"] + ) + assert self.oc_api.is_template_deployed(name_in_template="django-example") + assert self.oc_api.check_response_inside_cluster( + name_in_template="django-example", expected_output=expected_output + ) + diff --git a/tests/test_django_postgresql.py b/tests/test_django_postgresql.py new file mode 100644 index 000000000..e80c7cdb0 --- /dev/null +++ b/tests/test_django_postgresql.py @@ -0,0 +1,50 @@ +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="3.11-ubi8" + +class TestDjangoAppExTemplate: + + def setup_method(self): + self.oc_api = OpenShiftAPI(pod_name_prefix="django-example") + json_raw_file = self.oc_api.get_raw_url_for_json( + container="s2i-python-container", dir="imagestreams", filename="python-rhel.json" + ) + self.oc_api.import_is(path=json_raw_file, name="python") + json_raw_file = self.oc_api.get_raw_url_for_json( + container="postgresql-container", dir="imagestreams", filename="postgresql-rhel.json" + ) + self.oc_api.import_is(path=json_raw_file, name="postgresql") + + def teardown_method(self): + self.oc_api.delete_project() + + def test_template_inside_cluster(self): + branch_to_test = "4.2.x" + if VERSION == "3.9-ubi9": + branch_to_test = "2.2.x" + elif VERSION == "3.6-ubi8": + branch_to_test = "master" + expected_output = "Welcome to your Django application" + template_json = self.oc_api.get_raw_url_for_json( + container="django-ex", branch=branch_to_test, dir="openshift/templates", filename="django-postgresql-persistent.json" + ) + assert self.oc_api.deploy_template( + template=template_json, name_in_template="django-example", expected_output=expected_output, + openshift_args=[ + f"SOURCE_REPOSITORY_REF={branch_to_test}", + f"PYTHON_VERSION={VERSION}", + "NAME=django-example", + "POSTGRESQL_VERSION=12-el8" + ] + ) + assert self.oc_api.is_template_deployed(name_in_template="django-example") + assert self.oc_api.check_response_inside_cluster( + name_in_template="django-example", expected_output=expected_output + ) From 4674a66290bc44c3f7dd4bc89cc4726cda78cd1e Mon Sep 17 00:00:00 2001 From: "Petr \"Stone\" Hracek" Date: Thu, 9 Oct 2025 14:15:01 +0200 Subject: [PATCH 3/3] Add tests back it again. Signed-off-by: Petr "Stone" Hracek --- tests/Makefile => Makefile | 0 tests/test_django.py | 2 -- tests/test_django_postgresql.py | 3 +-- 3 files changed, 1 insertion(+), 4 deletions(-) rename tests/Makefile => Makefile (100%) diff --git a/tests/Makefile b/Makefile similarity index 100% rename from tests/Makefile rename to Makefile diff --git a/tests/test_django.py b/tests/test_django.py index 018736236..c8c8335f6 100644 --- a/tests/test_django.py +++ b/tests/test_django.py @@ -27,8 +27,6 @@ def test_template_inside_cluster(self): branch_to_test = "4.2.x" if VERSION == "3.9-ubi9": branch_to_test = "2.2.x" - elif VERSION == "3.6-ubi8": - branch_to_test = "master" expected_output = "Welcome to your Django application" template_json = self.oc_api.get_raw_url_for_json( container="django-ex", branch=branch_to_test, dir="openshift/templates", filename="django.json" diff --git a/tests/test_django_postgresql.py b/tests/test_django_postgresql.py index e80c7cdb0..8e33d2f53 100644 --- a/tests/test_django_postgresql.py +++ b/tests/test_django_postgresql.py @@ -1,4 +1,5 @@ import pytest +import os from pathlib import Path from container_ci_suite.openshift import OpenShiftAPI @@ -29,8 +30,6 @@ def test_template_inside_cluster(self): branch_to_test = "4.2.x" if VERSION == "3.9-ubi9": branch_to_test = "2.2.x" - elif VERSION == "3.6-ubi8": - branch_to_test = "master" expected_output = "Welcome to your Django application" template_json = self.oc_api.get_raw_url_for_json( container="django-ex", branch=branch_to_test, dir="openshift/templates", filename="django-postgresql-persistent.json"