From 70042287a1757d8e893a59a451af430871652e50 Mon Sep 17 00:00:00 2001 From: Richard Nemeth Date: Sat, 27 Dec 2025 19:28:56 +0100 Subject: [PATCH] feat: apply pool maxsize for async as well --- src/keycloak/connection.py | 10 +++++++++- tests/conftest.py | 6 ------ tests/test_keycloak_admin.py | 14 -------------- tests/test_keycloak_openid.py | 1 - 4 files changed, 9 insertions(+), 22 deletions(-) diff --git a/src/keycloak/connection.py b/src/keycloak/connection.py index 4825668..7f736ef 100644 --- a/src/keycloak/connection.py +++ b/src/keycloak/connection.py @@ -123,7 +123,15 @@ class ConnectionManager: if proxies: self._s.proxies.update(proxies) - self.async_s = httpx.AsyncClient(verify=verify, mounts=proxies, cert=cert) + self.async_s = httpx.AsyncClient( + verify=verify, + mounts=proxies, + cert=cert, + limits=httpx.Limits( + max_connections=100 if pool_maxsize is None else pool_maxsize, + max_keepalive_connections=20, + ), + ) self.async_s.auth = None # don't let requests add auth headers self.async_s.transport = httpx.AsyncHTTPTransport(retries=1) diff --git a/tests/conftest.py b/tests/conftest.py index 7261671..b5434c4 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -161,7 +161,6 @@ def admin(env: KeycloakTestEnv) -> KeycloakAdmin: server_url=f"http://{env.keycloak_host}:{env.keycloak_port}", username=env.keycloak_admin, password=env.keycloak_admin_password, - pool_maxsize=5, ) @@ -180,7 +179,6 @@ def admin_frozen(env: KeycloakTestEnv) -> KeycloakAdmin: server_url=f"http://{env.keycloak_host}:{env.keycloak_port}", username=env.keycloak_admin, password=env.keycloak_admin_password, - pool_maxsize=5, ) @@ -220,7 +218,6 @@ def oid( server_url=f"http://{env.keycloak_host}:{env.keycloak_port}", realm_name=realm, client_id=client, - pool_maxsize=5, ) # Cleanup admin.delete_client(client_id=client_id) @@ -282,7 +279,6 @@ def oid_with_credentials( realm_name=realm, client_id=client, client_secret_key=secret, - pool_maxsize=5, ), username, password, @@ -358,7 +354,6 @@ def oid_with_credentials_authz( realm_name=realm, client_id=client, client_secret_key=secret, - pool_maxsize=5, ), username, password, @@ -426,7 +421,6 @@ def oid_with_credentials_device( realm_name=realm, client_id=client, client_secret_key=secret, - pool_maxsize=5, ), username, password, diff --git a/tests/test_keycloak_admin.py b/tests/test_keycloak_admin.py index 65411bb..4edb17b 100644 --- a/tests/test_keycloak_admin.py +++ b/tests/test_keycloak_admin.py @@ -75,20 +75,12 @@ def test_keycloak_admin_init(env: KeycloakTestEnv) -> None: assert admin.connection.custom_headers is None, admin.connection.custom_headers assert admin.connection.pool_maxsize == 5, admin.connection.pool_maxsize - admin_default = KeycloakAdmin( - server_url=f"http://{env.keycloak_host}:{env.keycloak_port}", - username=env.keycloak_admin, - password=env.keycloak_admin_password, - ) - assert admin_default.connection.pool_maxsize is None - admin = KeycloakAdmin( server_url=f"http://{env.keycloak_host}:{env.keycloak_port}", username=env.keycloak_admin, password=env.keycloak_admin_password, realm_name=None, user_realm_name="master", - pool_maxsize=5, ) assert admin.connection.token is None admin = KeycloakAdmin( @@ -97,7 +89,6 @@ def test_keycloak_admin_init(env: KeycloakTestEnv) -> None: password=env.keycloak_admin_password, realm_name=None, user_realm_name=None, - pool_maxsize=5, ) assert admin.connection.token is None @@ -108,7 +99,6 @@ def test_keycloak_admin_init(env: KeycloakTestEnv) -> None: token=token, realm_name=None, user_realm_name=None, - pool_maxsize=5, ) assert admin.connection.token == token @@ -133,7 +123,6 @@ def test_keycloak_admin_init(env: KeycloakTestEnv) -> None: user_realm_name="authz", client_id="authz-client", client_secret_key=secret["value"], - pool_maxsize=5, ) admin_auth.connection.refresh_token() assert admin_auth.connection.token is not None @@ -146,7 +135,6 @@ def test_keycloak_admin_init(env: KeycloakTestEnv) -> None: password=None, client_secret_key=None, custom_headers={"custom": "header"}, - pool_maxsize=5, ).connection.token is None ) @@ -158,7 +146,6 @@ def test_keycloak_admin_init(env: KeycloakTestEnv) -> None: realm_name="master", client_id="admin-cli", verify=True, - pool_maxsize=5, ) keycloak_admin = KeycloakAdmin(connection=keycloak_connection) keycloak_admin.connection.get_token() @@ -3684,7 +3671,6 @@ async def test_a_realms(admin: KeycloakAdmin) -> None: realms = await admin.a_get_realms() assert len(realms) == 1, realms assert realms[0]["realm"] == "master" - assert admin.connection.pool_maxsize == 5, admin.connection.pool_maxsize # Create a test realm res = await admin.a_create_realm(payload={"realm": "test"}) diff --git a/tests/test_keycloak_openid.py b/tests/test_keycloak_openid.py index a7a2cc4..712c312 100644 --- a/tests/test_keycloak_openid.py +++ b/tests/test_keycloak_openid.py @@ -585,7 +585,6 @@ async def test_a_well_known(oid: KeycloakOpenID) -> None: res = await oid.a_well_known() assert res is not None assert res != {} - assert oid.connection.pool_maxsize == 5 for key in [ "acr_values_supported", "authorization_encryption_alg_values_supported",