1- from unittest .mock import AsyncMock , Mock , patch
1+ from unittest .mock import AsyncMock , Mock
22
33import pytest
44from fastapi import Request
55
6- from app .user . application . service . user import UserService
6+ from app .container import Container
77from core .fastapi .dependencies import (
8- PermissionDependency ,
8+ AllowAll ,
99 IsAdmin ,
1010 IsAuthenticated ,
11- AllowAll ,
11+ PermissionDependency ,
1212)
13- from core .fastapi .dependencies import permission
1413from core .fastapi .dependencies .permission import UnauthorizedException
1514
15+ container = Container ()
16+
1617
1718@pytest .mark .asyncio
1819async def test_permission_dependency_is_authenticated ():
@@ -27,31 +28,34 @@ async def test_permission_dependency_is_authenticated():
2728
2829
2930@pytest .mark .asyncio
30- @patch .object (permission , "UserService" , spec = UserService )
31- async def test_permission_dependency_is_admin_user_is_not_admin (user_service_mock ):
31+ async def test_permission_dependency_is_admin_user_is_not_admin ():
3232 # Given
3333 dependency = PermissionDependency (permissions = [IsAdmin ])
3434 request = AsyncMock (spec = Request )
3535 user_id = 1
3636 request .user = Mock (id = user_id )
37+ user_service_mock = AsyncMock ()
3738 user_service_mock .is_admin .return_value = False
3839
3940 # When, Then
40- await dependency (request = request )
41+ with container .user_service .override (user_service_mock ):
42+ with pytest .raises (UnauthorizedException ):
43+ await dependency (request = request )
4144
4245
4346@pytest .mark .asyncio
44- @patch .object (permission , "UserService" , spec = UserService )
45- async def test_permission_dependency_is_admin_user_id_is_none (user_service_mock ):
47+ async def test_permission_dependency_is_admin_user_id_is_none ():
4648 # Given
4749 dependency = PermissionDependency (permissions = [IsAdmin ])
4850 request = AsyncMock (spec = Request )
4951 request .user = Mock (id = None )
52+ user_service_mock = AsyncMock ()
5053 user_service_mock .is_admin .return_value = False
5154
5255 # When, Then
53- with pytest .raises (UnauthorizedException ):
54- await dependency (request = request )
56+ with container .user_service .override (user_service_mock ):
57+ with pytest .raises (UnauthorizedException ):
58+ await dependency (request = request )
5559
5660
5761@pytest .mark .asyncio
0 commit comments