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")
|
@pytest.fixture(scope="function")
|
||||||
def admin_token(test_db):
|
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(
|
admin = User(
|
||||||
username="admin",
|
username="admin",
|
||||||
hashed_password="hashed_password",
|
hashed_password="hashed_password",
|
||||||
@@ -136,18 +138,16 @@ def admin_token(test_db):
|
|||||||
test_db.commit()
|
test_db.commit()
|
||||||
test_db.refresh(admin)
|
test_db.refresh(admin)
|
||||||
|
|
||||||
# Return mocked admin token data
|
# Return JWT token string (for use in "Bearer {token}" headers)
|
||||||
return TokenData(
|
token = create_access_token(user_id=admin.id, username="admin", role="admin")
|
||||||
sub=admin.id,
|
return token
|
||||||
username="admin",
|
|
||||||
role="admin",
|
|
||||||
exp=datetime.now(timezone.utc)
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope="function")
|
@pytest.fixture(scope="function")
|
||||||
def user_token(test_db):
|
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(
|
user = User(
|
||||||
username="user",
|
username="user",
|
||||||
hashed_password="hashed_password",
|
hashed_password="hashed_password",
|
||||||
@@ -158,35 +158,49 @@ def user_token(test_db):
|
|||||||
test_db.commit()
|
test_db.commit()
|
||||||
test_db.refresh(user)
|
test_db.refresh(user)
|
||||||
|
|
||||||
# Return mocked user token data
|
# Return JWT token string (for use in "Bearer {token}" headers)
|
||||||
return TokenData(
|
token = create_access_token(user_id=user.id, username="user", role="user")
|
||||||
sub=user.id,
|
return token
|
||||||
username="user",
|
|
||||||
role="user",
|
|
||||||
|
@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)
|
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():
|
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
|
app.dependency_overrides[get_current_user] = override_get_current_user
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user