Files
Mutual_Fund/tests/test_knowledge_auth.py
T

29 lines
1.0 KiB
Python

import unittest
from types import SimpleNamespace
from api.deps import require_knowledge_operator
from utils.exceptions import ForbiddenError
class KnowledgeAuthTests(unittest.IsolatedAsyncioTestCase):
async def test_allows_admin_or_knowledge_operator(self):
admin = SimpleNamespace(user_type="ADMIN", employee_role=None)
operator = SimpleNamespace(user_type="EMPLOYEE", employee_role="KNOWLEDGE_OPERATOR")
self.assertIs(await require_knowledge_operator(admin), admin)
self.assertIs(await require_knowledge_operator(operator), operator)
async def test_rejects_customer_and_unrelated_employee(self):
with self.assertRaises(ForbiddenError):
await require_knowledge_operator(
SimpleNamespace(user_type="CUSTOMER", employee_role=None)
)
with self.assertRaises(ForbiddenError):
await require_knowledge_operator(
SimpleNamespace(user_type="EMPLOYEE", employee_role="ADVISOR")
)
if __name__ == "__main__":
unittest.main()