@ -19,6 +19,8 @@ from keycloak.exceptions import (
KeycloakPutError ,
KeycloakPutError ,
)
)
from src.keycloak import KeycloakOpenIDConnection
def test_keycloak_version ( ) :
def test_keycloak_version ( ) :
""" Test version. """
""" Test version. """
@ -101,15 +103,26 @@ def test_keycloak_admin_init(env):
admin . delete_realm ( realm_name = " authz " )
admin . delete_realm ( realm_name = " authz " )
assert (
assert (
KeycloakAdmin (
server_url = f " http://{env.KEYCLOAK_HOST}:{env.KEYCLOAK_PORT} " ,
username = None ,
password = None ,
client_secret_key = None ,
custom_headers = { " custom " : " header " } ,
) . token
is None
KeycloakAdmin (
server_url = f " http://{env.KEYCLOAK_HOST}:{env.KEYCLOAK_PORT} " ,
username = None ,
password = None ,
client_secret_key = None ,
custom_headers = { " custom " : " header " } ,
) . token
is None
)
keycloak_connection = KeycloakOpenIDConnection (
server_url = f " http://{env.KEYCLOAK_HOST}:{env.KEYCLOAK_PORT} " ,
username = env . KEYCLOAK_ADMIN ,
password = env . KEYCLOAK_ADMIN_PASSWORD ,
realm_name = " master " ,
client_id = " admin-cli " ,
verify = True
)
)
keycloak_admin = KeycloakAdmin ( connection = keycloak_connection )
assert keycloak_admin . token
def test_realms ( admin : KeycloakAdmin ) :
def test_realms ( admin : KeycloakAdmin ) :
@ -960,8 +973,8 @@ def test_clients(admin: KeycloakAdmin, realm: str):
)
)
assert res
assert res
assert (
assert (
admin . get_client_secrets ( client_id = admin . get_client_id ( client_id = " test-confidential " ) )
== res
admin . get_client_secrets ( client_id = admin . get_client_id ( client_id = " test-confidential " ) )
== res
)
)
@ -1136,12 +1149,12 @@ def test_realm_roles(admin: KeycloakAdmin, realm: str):
] ,
] ,
)
)
def test_role_attributes (
def test_role_attributes (
admin : KeycloakAdmin ,
realm : str ,
client : str ,
arg_brief_repr : dict ,
includes_attributes : bool ,
testcase : str ,
admin : KeycloakAdmin ,
realm : str ,
client : str ,
arg_brief_repr : dict ,
includes_attributes : bool ,
testcase : str ,
) :
) :
""" Test getting role attributes for bulk calls.
""" Test getting role attributes for bulk calls.
@ -1489,8 +1502,8 @@ def test_client_roles(admin: KeycloakAdmin, client: str):
)
)
assert res == dict ( )
assert res == dict ( )
assert (
assert (
len ( admin . get_client_role_members ( client_id = client , role_name = " client-role-test-update " ) )
== 1
len ( admin . get_client_role_members ( client_id = client , role_name = " client-role-test-update " ) )
== 1
)
)
roles = admin . get_client_roles_of_user ( user_id = user_id , client_id = client )
roles = admin . get_client_roles_of_user ( user_id = user_id , client_id = client )
@ -1545,8 +1558,8 @@ def test_client_roles(admin: KeycloakAdmin, client: str):
)
)
assert res == dict ( )
assert res == dict ( )
assert (
assert (
len ( admin . get_client_role_groups ( client_id = client , role_name = " client-role-test-update " ) )
== 1
len ( admin . get_client_role_groups ( client_id = client , role_name = " client-role-test-update " ) )
== 1
)
)
assert len ( admin . get_group_client_roles ( group_id = group_id , client_id = client ) ) == 1
assert len ( admin . get_group_client_roles ( group_id = group_id , client_id = client ) ) == 1
@ -2025,8 +2038,8 @@ def test_client_scopes(admin: KeycloakAdmin, realm: str):
)
)
assert res_update == dict ( )
assert res_update == dict ( )
assert (
assert (
admin . get_mappers_from_client_scope ( client_scope_id = res ) [ 0 ] [ " config " ] [ " user.attribute " ]
== " test "
admin . get_mappers_from_client_scope ( client_scope_id = res ) [ 0 ] [ " config " ] [ " user.attribute " ]
== " test "
)
)
# Test delete mapper
# Test delete mapper
@ -2119,7 +2132,7 @@ def test_components(admin: KeycloakAdmin, realm: str):
" name " : " Test Component " ,
" name " : " Test Component " ,
" providerId " : " max-clients " ,
" providerId " : " max-clients " ,
" providerType " : " org.keycloak.services.clientregistration. "
" providerType " : " org.keycloak.services.clientregistration. "
+ " policy.ClientRegistrationPolicy " ,
+ " policy.ClientRegistrationPolicy " ,
" config " : { " max-clients " : [ " 1000 " ] } ,
" config " : { " max-clients " : [ " 1000 " ] } ,
}
}
)
)
@ -2238,8 +2251,8 @@ def test_auto_refresh(admin_frozen: KeycloakAdmin, realm: str):
assert admin . connection . expires_at < datetime_parser . parse ( " 2023-02-25 10:25:00 " )
assert admin . connection . expires_at < datetime_parser . parse ( " 2023-02-25 10:25:00 " )
admin . connection . token = None
admin . connection . token = None
assert (
assert (
admin . update_realm ( realm_name = " test-refresh " , payload = { " accountTheme " : " test " } )
== dict ( )
admin . update_realm ( realm_name = " test-refresh " , payload = { " accountTheme " : " test " } )
== dict ( )
)
)
assert admin . connection . expires_at > datetime_parser . parse ( " 2023-02-25 10:25:00 " )
assert admin . connection . expires_at > datetime_parser . parse ( " 2023-02-25 10:25:00 " )
@ -2310,7 +2323,7 @@ def test_update_required_action(admin: KeycloakAdmin, realm: str):
def test_get_composite_client_roles_of_group (
def test_get_composite_client_roles_of_group (
admin : KeycloakAdmin , realm : str , client : str , group : str , composite_client_role : str
admin : KeycloakAdmin , realm : str , client : str , group : str , composite_client_role : str
) :
) :
""" Test get composite client roles of group.
""" Test get composite client roles of group.
@ -2333,7 +2346,7 @@ def test_get_composite_client_roles_of_group(
def test_get_role_client_level_children (
def test_get_role_client_level_children (
admin : KeycloakAdmin , realm : str , client : str , composite_client_role : str , client_role : str
admin : KeycloakAdmin , realm : str , client : str , composite_client_role : str , client_role : str
) :
) :
""" Test get children of composite client role.
""" Test get children of composite client role.
@ -2376,7 +2389,7 @@ def test_upload_certificate(admin: KeycloakAdmin, realm: str, client: str, selfs
def test_get_bruteforce_status_for_user (
def test_get_bruteforce_status_for_user (
admin : KeycloakAdmin , oid_with_credentials : Tuple [ KeycloakOpenID , str , str ] , realm : str
admin : KeycloakAdmin , oid_with_credentials : Tuple [ KeycloakOpenID , str , str ] , realm : str
) :
) :
""" Test users.
""" Test users.
@ -2413,7 +2426,7 @@ def test_get_bruteforce_status_for_user(
def test_clear_bruteforce_attempts_for_user (
def test_clear_bruteforce_attempts_for_user (
admin : KeycloakAdmin , oid_with_credentials : Tuple [ KeycloakOpenID , str , str ] , realm : str
admin : KeycloakAdmin , oid_with_credentials : Tuple [ KeycloakOpenID , str , str ] , realm : str
) :
) :
""" Test users.
""" Test users.
@ -2453,7 +2466,7 @@ def test_clear_bruteforce_attempts_for_user(
def test_clear_bruteforce_attempts_for_all_users (
def test_clear_bruteforce_attempts_for_all_users (
admin : KeycloakAdmin , oid_with_credentials : Tuple [ KeycloakOpenID , str , str ] , realm : str
admin : KeycloakAdmin , oid_with_credentials : Tuple [ KeycloakOpenID , str , str ] , realm : str
) :
) :
""" Test users.
""" Test users.
@ -2503,8 +2516,8 @@ def test_default_realm_role_present(realm: str, admin: KeycloakAdmin) -> None:
admin . realm_name = realm
admin . realm_name = realm
assert f " default-roles-{realm} " in [ x [ " name " ] for x in admin . get_realm_roles ( ) ]
assert f " default-roles-{realm} " in [ x [ " name " ] for x in admin . get_realm_roles ( ) ]
assert (
assert (
len ( [ x [ " name " ] for x in admin . get_realm_roles ( ) if x [ " name " ] == f " default-roles-{realm} " ] )
== 1
len ( [ x [ " name " ] for x in admin . get_realm_roles ( ) if x [ " name " ] == f " default-roles-{realm} " ] )
== 1
)
)
@ -2518,8 +2531,8 @@ def test_get_default_realm_role_id(realm: str, admin: KeycloakAdmin) -> None:
"""
"""
admin . realm_name = realm
admin . realm_name = realm
assert (
assert (
admin . get_default_realm_role_id ( )
== [ x [ " id " ] for x in admin . get_realm_roles ( ) if x [ " name " ] == f " default-roles-{realm} " ] [ 0 ]
admin . get_default_realm_role_id ( )
== [ x [ " id " ] for x in admin . get_realm_roles ( ) if x [ " name " ] == f " default-roles-{realm} " ] [ 0 ]
)
)
@ -2605,7 +2618,7 @@ def test_clear_user_cache(realm: str, admin: KeycloakAdmin) -> None:
def test_initial_access_token (
def test_initial_access_token (
admin : KeycloakAdmin , oid_with_credentials : Tuple [ KeycloakOpenID , str , str ]
admin : KeycloakAdmin , oid_with_credentials : Tuple [ KeycloakOpenID , str , str ]
) - > None :
) - > None :
""" Test initial access token and client creation.
""" Test initial access token and client creation.