def test_provider_info_default_client_none(requests_mock): requests_mock.get("https://authit.test/.well-known/openid-configuration", json={}) info = OidcProviderInfo(issuer="https://authit.test") assert info.get_default_client_id(grant_types=[]) is None assert info.get_default_client_id( grant_types=[DefaultOidcClientGrant.DEVICE_CODE_PKCE]) is None
def test_provider_info_default_client_available_list(requests_mock): requests_mock.get("https://authit.test/.well-known/openid-configuration", json={}) default_clients = [{ "id": "jak4l0v3-45lsdfe3d", "grant_types": ["urn:ietf:params:oauth:grant-type:device_code+pkce", "refresh_token"] }] info = OidcProviderInfo(issuer="https://authit.test", default_clients=default_clients) # Alias for compactness g = DefaultOidcClientGrant assert info.get_default_client_id(grant_check=[]) == "jak4l0v3-45lsdfe3d" assert info.get_default_client_id( grant_check=[g.DEVICE_CODE_PKCE]) == "jak4l0v3-45lsdfe3d" assert info.get_default_client_id( grant_check=[g.REFRESH_TOKEN]) == "jak4l0v3-45lsdfe3d" assert info.get_default_client_id( grant_check=[g.DEVICE_CODE_PKCE, g.REFRESH_TOKEN ]) == "jak4l0v3-45lsdfe3d" assert info.get_default_client_id(grant_check=[g.IMPLICIT]) is None assert info.get_default_client_id( grant_check=[g.IMPLICIT, g.REFRESH_TOKEN]) is None
def test_provider_info_default_client_invalid_grants(requests_mock, caplog): requests_mock.get("https://authit.test/.well-known/openid-configuration", json={}) default_clients = [{ "id": "jak4l0v3-45lsdfe3d", "grant_types": ["refresh_token", "nope dis invalid"] }] info = OidcProviderInfo(issuer="https://authit.test", default_clients=default_clients) # Alias for compactness g = DefaultOidcClientGrant with caplog.at_level(logging.WARNING): assert info.get_default_client_id( grant_check=[g.REFRESH_TOKEN]) == "jak4l0v3-45lsdfe3d" assert "Invalid OIDC grant type 'nope dis" in caplog.text
def test_provider_info_default_client_none(requests_mock): requests_mock.get("https://authit.test/.well-known/openid-configuration", json={}) info = OidcProviderInfo(issuer="https://authit.test") assert info.get_default_client_id(grant_check=[]) is None assert info.get_default_client_id(grant_check=lambda grants: True) is None