test: fix token fixtures to return JWT strings instead of TokenData objects
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user