Compare commits

...

3 Commits

Author SHA1 Message Date
Jens Langhammer
30e2e255d4 add oidcc-config-certification-test-plan
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2026-05-09 00:51:06 +02:00
Jens Langhammer
e40cb7eca3 check that finished test module is in correct state
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2026-05-09 00:49:06 +02:00
Jens Langhammer
0bf99fe379 allow for non-variant
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
2026-05-09 00:48:32 +02:00
4 changed files with 44 additions and 3 deletions

View File

@@ -284,6 +284,8 @@ jobs:
job:
- name: oidc_basic
glob: tests/openid_conformance/test_oidc_basic.py
- name: oidc_config
glob: tests/openid_conformance/test_oidc_config.py
- name: oidc_implicit
glob: tests/openid_conformance/test_oidc_implicit.py
- name: oidc_rp-initiated

View File

@@ -63,7 +63,10 @@ class TestOpenIDConformance(SSLLiveMixin, SeleniumTestCase):
}
def run_test(
self, test_name: str, test_plan_config: dict[str, Any], test_variant: dict[str, Any]
self,
test_name: str,
test_plan_config: dict[str, Any],
test_variant: dict[str, Any] | None = None,
):
self.conformance = Conformance(f"https://{self.host}:8443/", None, verify_ssl=False)
@@ -82,7 +85,14 @@ class TestOpenIDConformance(SSLLiveMixin, SeleniumTestCase):
)
module_id = module_instance["id"]
self.run_single_test(module_id)
self.conformance.wait_for_state(module_id, ["FINISHED"], timeout=self.wait_timeout)
module = self.conformance.wait_for_state(
module_id, ["FINISHED"], timeout=self.wait_timeout
)
self.assertIn(
module["result"],
["PASSED", "SKIPPED", "WARNING"],
f"Module {module['testName']} did not finish with expected status.",
)
sleep(2)
self.conformance.export_html(plan_id, Path(__file__).parent / "exports")

View File

@@ -205,7 +205,7 @@ class Conformance:
info = self.get_module_info(module_id)
status: str | None = info.get("status")
if status in required_states:
return status
return info
if status == "INTERRUPTED":
raise ConformanceException(f"Test module {module_id} has moved to INTERRUPTED")
sleep(1)

View File

@@ -0,0 +1,29 @@
from authentik.providers.oauth2.models import IssuerMode, OAuth2Provider
from tests.decorators import retry
from tests.live import SSLLiveMixin
from tests.openid_conformance.base import TestOpenIDConformance
class TestOpenIDConformanceConfig(TestOpenIDConformance, SSLLiveMixin):
def setUp(self):
super().setUp()
OAuth2Provider.objects.filter(name__startswith="oidc-conformance-").update(
issuer_mode=IssuerMode.PER_PROVIDER
)
@retry()
def test_oidcc_config_certification_test_plan(self):
self.run_test(
"oidcc-config-certification-test-plan",
{
"alias": "authentik",
"description": "authentik",
"server": {
"discoveryUrl": self.url(
"authentik_providers_oauth2:provider-info",
application_slug="oidc-conformance-1",
),
},
},
)