Skip to content

Commit

Permalink
Retry Keycloak admin access with delay if testcontainer not fully ready
Browse files Browse the repository at this point in the history
  • Loading branch information
disrupted committed Mar 4, 2024
1 parent 7c83122 commit 36e99dd
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions tests/test_oauth.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import json
from pathlib import Path
from time import sleep
from typing import Annotated, Generator
from fastapi import Depends, FastAPI, Request, status
import httpx
from starlette.middleware.sessions import SessionMiddleware
from keycloak import KeycloakAdmin
from keycloak import KeycloakAdmin, KeycloakAuthenticationError
import pytest
from keycloak_oauth import KeycloakOAuth2, User
from testcontainers.keycloak import KeycloakContainer
Expand All @@ -30,7 +31,15 @@ def keycloak(self) -> Generator[KeycloakAdmin, None, None]:
container, KeycloakContainer
) # HACK: wrong type annotation in testcontainers `with_command`
container.with_bind_ports(container.port, container.port).start()
keycloak = container.get_client()

while True:
try:
keycloak = container.get_client()
except KeycloakAuthenticationError:
sleep(0.1)
continue
break

assert keycloak.connection.base_url == container.get_base_api_url() + "/"
keycloak.import_realm(
json.loads(Path(self.RESOURCES_PATH / "realm.json").read_bytes())
Expand Down

0 comments on commit 36e99dd

Please sign in to comment.