1+ import re
12from unittest import mock
23
34import pytest
5+ from api .mocks import FakeAuthContext , FakeUserWithAuthDependency
6+ from dependency_injector import providers
47from fastapi import FastAPI , status
58from fastapi .testclient import TestClient
69
912)
1013from carbonserver .api .routers import project_api_tokens
1114from carbonserver .api .schemas import ProjectToken
15+ from carbonserver .api .services .auth_service import MandatoryUserWithAuthDependency
1216from carbonserver .container import ServerContainer
1317
1418PROJECT_ID = "f52fe339-164d-4c2b-a8c0-f562dfce066d"
2529 "id" : PROJECT_TOKEN_ID ,
2630 "project_id" : PROJECT_ID ,
2731 "name" : "Token API Code Carbon" ,
28- "token" : "token " ,
32+ "token" : "cpt_some_token " ,
2933 "access" : 2 ,
3034 "last_used" : None ,
35+ "revoked" : False ,
3136}
3237
3338
@@ -38,6 +43,10 @@ def custom_test_server():
3843 app = FastAPI ()
3944 app .container = container
4045 app .include_router (project_api_tokens .router )
46+ app .dependency_overrides [MandatoryUserWithAuthDependency ] = (
47+ FakeUserWithAuthDependency
48+ )
49+ app .container .auth_context .override (providers .Factory (FakeAuthContext ))
4150 yield app
4251
4352
@@ -60,7 +69,13 @@ def test_add_project_token(client, custom_test_server):
6069 actual_project_token = response .json ()
6170
6271 assert response .status_code == status .HTTP_201_CREATED
63- assert actual_project_token == expected_project_token
72+ # Check all fields except 'token'
73+ for key in expected_project_token :
74+ if key != "token" :
75+ assert actual_project_token [key ] == expected_project_token [key ]
76+
77+ # Check token format: cpt_ + 32 alphanumeric chars
78+ assert re .fullmatch (r"cpt_[a-zA-Z0-9_\-]{43,44}" , actual_project_token ["token" ])
6479
6580
6681def test_delete_project_token (client , custom_test_server ):
0 commit comments