diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index 0a648a9d33..14d59f9d03 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -227,8 +227,17 @@ jobs: file: unittest.xml token: ${{ secrets.CODECOV_TOKEN }} test-conformance: + name: test-conformance (${{ matrix.job.name }}) runs-on: ubuntu-latest timeout-minutes: 30 + strategy: + fail-fast: false + matrix: + job: + - name: basic + glob: tests/openid_conformance/test_basic.py + - name: implicit + glob: tests/openid_conformance/test_implicit.py steps: - uses: actions/checkout@v4 - name: Setup authentik env @@ -254,7 +263,7 @@ jobs: npm run build:sfe - name: run conformance run: | - uv run coverage run manage.py test tests/openid_conformance/test_* + uv run coverage run manage.py test ${{ matrix.job.glob }} uv run coverage xml - if: ${{ always() }} uses: codecov/codecov-action@v5 diff --git a/tests/openid_conformance/test_conformance.py b/tests/openid_conformance/base.py similarity index 79% rename from tests/openid_conformance/test_conformance.py rename to tests/openid_conformance/base.py index cc937285e8..8ab0d0b48a 100644 --- a/tests/openid_conformance/test_conformance.py +++ b/tests/openid_conformance/base.py @@ -8,7 +8,7 @@ from selenium.webdriver.support import expected_conditions as ec from authentik.blueprints.tests import apply_blueprint, reconcile_app from authentik.providers.oauth2.models import OAuth2Provider -from tests.e2e.utils import SeleniumTestCase, retry +from tests.e2e.utils import SeleniumTestCase from tests.openid_conformance.conformance import Conformance @@ -63,42 +63,6 @@ class TestOpenIDConformance(SeleniumTestCase): "client_registration": "static_client", } - @retry() - def test_oidcc_basic_certification_test(self): - test_plan_name = "oidcc-basic-certification-test-plan" - self.run_test(test_plan_name, self.test_plan_config) - - @retry() - def test_oidcc_implicit_certification_test(self): - test_plan_name = "oidcc-implicit-certification-test-plan" - self.run_test(test_plan_name, self.test_plan_config) - - # @retry() - # def test_oidcc_hybrid_certification_test(self): - # test_plan_name = "oidcc-hybrid-certification-test-plan" - # self.run_test(test_plan_name, self.test_plan_config) - - # @retry() - # def test_oidcc_formpost_basic_certification_test(self): - # test_plan_name = "oidcc-formpost-basic-certification-test-plan" - # self.run_test(test_plan_name, self.test_plan_config) - - # @retry() - # def test_oidcc_formpost_implicit_certification_test(self): - # test_plan_name = "oidcc-formpost-implicit-certification-test-plan" - # self.run_test(test_plan_name, self.test_plan_config) - - # @retry() - # def test_oidcc_formpost_hybrid_certification_test(self): - # test_plan_name = "oidcc-formpost-hybrid-certification-test-plan" - # self.run_test(test_plan_name, self.test_plan_config) - - # @retry() - # def test_oidcc_config_certification_test(self): - # test_plan_name = "oidcc-config-certification-test-plan" - # self.test_variant = {} - # self.run_test(test_plan_name, self.test_plan_config) - def run_test(self, test_plan: str, test_plan_config: dict): # Create a Conformance instance... self.conformance = Conformance(f"https://{self.host}:8443/", None, verify_ssl=False) diff --git a/tests/openid_conformance/test_basic.py b/tests/openid_conformance/test_basic.py new file mode 100644 index 0000000000..a84d7cf04e --- /dev/null +++ b/tests/openid_conformance/test_basic.py @@ -0,0 +1,10 @@ +from tests.e2e.utils import retry +from tests.openid_conformance.base import TestOpenIDConformance + + +class TestOpenIDConformanceBasic(TestOpenIDConformance): + + @retry() + def test_oidcc_basic_certification_test(self): + test_plan_name = "oidcc-basic-certification-test-plan" + self.run_test(test_plan_name, self.test_plan_config) diff --git a/tests/openid_conformance/test_implicit.py b/tests/openid_conformance/test_implicit.py new file mode 100644 index 0000000000..a84d7cf04e --- /dev/null +++ b/tests/openid_conformance/test_implicit.py @@ -0,0 +1,10 @@ +from tests.e2e.utils import retry +from tests.openid_conformance.base import TestOpenIDConformance + + +class TestOpenIDConformanceBasic(TestOpenIDConformance): + + @retry() + def test_oidcc_basic_certification_test(self): + test_plan_name = "oidcc-basic-certification-test-plan" + self.run_test(test_plan_name, self.test_plan_config)