1+ from unittest .mock import MagicMock
2+
13import pytest
24from fastapi import HTTPException
35from sqlmodel import Session
810from app .tests .utils .test_data import create_test_api_key
911
1012
13+ def _mock_request () -> MagicMock :
14+ """Create a mock Request object with empty cookies."""
15+ request = MagicMock ()
16+ request .cookies = {}
17+ return request
18+
19+
1120class TestHasPermission :
1221 """Test suite for has_permission function"""
1322
@@ -21,7 +30,10 @@ def test_superuser_permission_with_superuser(self, db: Session) -> None:
2130 db .refresh (user )
2231
2332 auth_context = get_auth_context (
24- session = db , token = None , api_key = api_key_response .key
33+ request = _mock_request (),
34+ session = db ,
35+ token = None ,
36+ api_key = api_key_response .key ,
2537 )
2638
2739 result = has_permission (auth_context , Permission .SUPERUSER , db )
@@ -33,7 +45,10 @@ def test_superuser_permission_with_regular_user(self, db: Session) -> None:
3345 api_key_response = create_test_api_key (db )
3446
3547 auth_context = get_auth_context (
36- session = db , token = None , api_key = api_key_response .key
48+ request = _mock_request (),
49+ session = db ,
50+ token = None ,
51+ api_key = api_key_response .key ,
3752 )
3853
3954 result = has_permission (auth_context , Permission .SUPERUSER , db )
@@ -47,7 +62,10 @@ def test_require_organization_permission_with_organization(
4762 api_key_response = create_test_api_key (db )
4863
4964 auth_context = get_auth_context (
50- session = db , token = None , api_key = api_key_response .key
65+ request = _mock_request (),
66+ session = db ,
67+ token = None ,
68+ api_key = api_key_response .key ,
5169 )
5270
5371 result = has_permission (auth_context , Permission .REQUIRE_ORGANIZATION , db )
@@ -61,7 +79,10 @@ def test_require_organization_permission_without_organization(
6179 api_key_response = create_test_api_key (db )
6280
6381 auth_context = get_auth_context (
64- session = db , token = None , api_key = api_key_response .key
82+ request = _mock_request (),
83+ session = db ,
84+ token = None ,
85+ api_key = api_key_response .key ,
6586 )
6687
6788 auth_context .organization = None
@@ -75,7 +96,10 @@ def test_require_project_permission_with_project(self, db: Session) -> None:
7596 api_key_response = create_test_api_key (db )
7697
7798 auth_context = get_auth_context (
78- session = db , token = None , api_key = api_key_response .key
99+ request = _mock_request (),
100+ session = db ,
101+ token = None ,
102+ api_key = api_key_response .key ,
79103 )
80104
81105 result = has_permission (auth_context , Permission .REQUIRE_PROJECT , db )
@@ -87,7 +111,10 @@ def test_require_project_permission_without_project(self, db: Session) -> None:
87111 api_key_response = create_test_api_key (db )
88112
89113 auth_context = get_auth_context (
90- session = db , token = None , api_key = api_key_response .key
114+ request = _mock_request (),
115+ session = db ,
116+ token = None ,
117+ api_key = api_key_response .key ,
91118 )
92119
93120 auth_context .project = None
@@ -115,7 +142,10 @@ def test_permission_checker_passes_with_valid_permission(self, db: Session) -> N
115142 db .commit ()
116143 db .refresh (user )
117144 auth_context = get_auth_context (
118- session = db , token = None , api_key = api_key_response .key
145+ request = _mock_request (),
146+ session = db ,
147+ token = None ,
148+ api_key = api_key_response .key ,
119149 )
120150
121151 permission_checker = require_permission (Permission .SUPERUSER )
@@ -127,7 +157,10 @@ def test_permission_checker_raises_403_without_permission(
127157 """Test that permission checker raises HTTPException with 403 when user lacks permission"""
128158 api_key_response = create_test_api_key (db )
129159 auth_context = get_auth_context (
130- session = db , token = None , api_key = api_key_response .key
160+ request = _mock_request (),
161+ session = db ,
162+ token = None ,
163+ api_key = api_key_response .key ,
131164 )
132165
133166 permission_checker = require_permission (Permission .SUPERUSER )
0 commit comments