43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
import pytest
|
|
from unittest.mock import MagicMock, patch
|
|
from ea_chatbot.auth import OIDCClient
|
|
|
|
@patch("ea_chatbot.auth.OAuth2Session")
|
|
def test_oidc_client_initialization(mock_oauth):
|
|
client = OIDCClient(
|
|
client_id="test_id",
|
|
client_secret="test_secret",
|
|
server_metadata_url="https://test.server/.well-known/openid-configuration"
|
|
)
|
|
assert client.oauth_session is not None
|
|
|
|
@patch("ea_chatbot.auth.requests")
|
|
@patch("ea_chatbot.auth.OAuth2Session")
|
|
def test_get_login_url(mock_oauth_cls, mock_requests):
|
|
# Setup mock session
|
|
mock_session = MagicMock()
|
|
mock_oauth_cls.return_value = mock_session
|
|
|
|
# Mock metadata response
|
|
mock_response = MagicMock()
|
|
mock_response.json.return_value = {
|
|
"authorization_endpoint": "https://test.server/auth",
|
|
"token_endpoint": "https://test.server/token",
|
|
"userinfo_endpoint": "https://test.server/userinfo"
|
|
}
|
|
mock_requests.get.return_value = mock_response
|
|
|
|
# Mock authorization url generation
|
|
mock_session.create_authorization_url.return_value = ("https://test.server/auth?response_type=code", "state")
|
|
|
|
client = OIDCClient(
|
|
client_id="test_id",
|
|
client_secret="test_secret",
|
|
server_metadata_url="https://test.server/.well-known/openid-configuration"
|
|
)
|
|
|
|
url = client.get_login_url()
|
|
|
|
assert url == "https://test.server/auth?response_type=code"
|
|
# Verify metadata was fetched via requests
|
|
mock_requests.get.assert_called_with("https://test.server/.well-known/openid-configuration") |