38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
from types import SimpleNamespace
|
|
import unittest
|
|
from unittest.mock import patch
|
|
|
|
from app.controllers.auth.sso_controller import SSOController
|
|
from app.schemas.auth.sso_schema import SSOInitiateRequest
|
|
|
|
|
|
class SSOControllerTest(unittest.TestCase):
|
|
def test_initiate_sso_uses_one_time_grant_flow(self):
|
|
user = SimpleNamespace(id="user-1", tenant_id="tenant-1")
|
|
expected = {
|
|
"grant_code": "a" * 32,
|
|
"redirect_url": "http://127.0.0.1:5173/sso/callback?grant=" + "a" * 32,
|
|
}
|
|
|
|
with patch(
|
|
"app.controllers.auth.sso_controller.SSOService.generate_grant",
|
|
return_value=expected,
|
|
) as generate_grant:
|
|
result = SSOController.initiate_sso(
|
|
db="db-session",
|
|
request=SSOInitiateRequest(module_id="pim"),
|
|
current_user=user,
|
|
)
|
|
|
|
self.assertEqual(result, expected)
|
|
generate_grant.assert_called_once_with(
|
|
db="db-session",
|
|
user_id="user-1",
|
|
module_id="pim",
|
|
tenant_id="tenant-1",
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|