test: fix token fixtures to return JWT strings instead of TokenData objects

This commit is contained in:
2026-04-18 16:50:54 +00:00
parent be83262644
commit 9b45ece68f

View File

@@ -125,7 +125,9 @@ def mock_config():
@pytest.fixture(scope="function")
def admin_token(test_db):
"""Create a test admin user and return auth token."""
"""Create a test admin user and return JWT token string."""
from backend.auth import create_access_token
admin = User(
username="admin",
hashed_password="hashed_password",
@@ -136,18 +138,16 @@ def admin_token(test_db):
test_db.commit()
test_db.refresh(admin)
# Return mocked admin token data
return TokenData(
sub=admin.id,
username="admin",
role="admin",
exp=datetime.now(timezone.utc)
)
# Return JWT token string (for use in "Bearer {token}" headers)
token = create_access_token(user_id=admin.id, username="admin", role="admin")
return token
@pytest.fixture(scope="function")
def user_token(test_db):
"""Create a test regular user and return auth token."""
"""Create a test regular user and return JWT token string."""
from backend.auth import create_access_token
user = User(
username="user",
hashed_password="hashed_password",
@@ -158,35 +158,49 @@ def user_token(test_db):
test_db.commit()
test_db.refresh(user)
# Return mocked user token data
return TokenData(
sub=user.id,
username="user",
role="user",
# Return JWT token string (for use in "Bearer {token}" headers)
token = create_access_token(user_id=user.id, username="user", role="user")
return token
@pytest.fixture(scope="function")
def admin_client(test_client, test_db, admin_token):
"""Create a test client authenticated as admin."""
from backend.auth import get_current_user
# Create TokenData from the JWT token's user info
admin_token_data = TokenData(
sub=1, # First admin user created has id=1
username="admin",
role="admin",
exp=datetime.now(timezone.utc)
)
@pytest.fixture(scope="function")
def admin_client(test_client, admin_token):
"""Create a test client authenticated as admin."""
def override_get_current_admin():
return admin_token
app.dependency_overrides[get_current_admin] = override_get_current_admin
yield test_client
app.dependency_overrides.pop(get_current_admin, None)
@pytest.fixture(scope="function")
def user_client(test_client, user_token):
"""Create a test client authenticated as regular user."""
from backend.auth import get_current_user
def override_get_current_user():
return user_token
return admin_token_data
app.dependency_overrides[get_current_user] = override_get_current_user
yield test_client
app.dependency_overrides.pop(get_current_user, None)
@pytest.fixture(scope="function")
def user_client(test_client, test_db, user_token):
"""Create a test client authenticated as regular user."""
from backend.auth import get_current_user
# Create TokenData from the JWT token's user info
user_token_data = TokenData(
sub=2, # Second user created has id=2
username="user",
role="user",
exp=datetime.now(timezone.utc)
)
def override_get_current_user():
return user_token_data
app.dependency_overrides[get_current_user] = override_get_current_user