45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
import pytest
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_get_jwt_and_verify(async_app_client, test_project):
|
|
"""Test the complete end-to-end flow: get token, use token, verify payload"""
|
|
|
|
api_key, project_id = str(test_project.api_key), str(test_project.id)
|
|
|
|
auth_response = await async_app_client.post("/v3/auth/token", json={"api_key": api_key})
|
|
assert auth_response.status_code == 200
|
|
token = auth_response.json()["token"]
|
|
|
|
headers = {"Authorization": f"Bearer {token}"}
|
|
info_response = await async_app_client.get("/v3/auth/token", headers=headers)
|
|
|
|
assert info_response.status_code == 200
|
|
payload = info_response.json()["payload"]
|
|
assert "project_id" in payload
|
|
assert "api_key" in payload
|
|
assert payload["project_id"] == project_id
|
|
assert payload["api_key"] == api_key
|
|
|
|
|
|
async def test_get_jwt_placeholder_api_key(async_app_client):
|
|
"""Test the get token endpoint with a placeholder API key"""
|
|
|
|
auth_response = await async_app_client.post(
|
|
"/v3/auth/token", json={"api_key": "INSERT-YOUR-API-KEY-HERE"}
|
|
)
|
|
|
|
assert auth_response.status_code == 400
|
|
assert 'error' in auth_response.json()
|
|
|
|
|
|
async def test_get_jwt_non_existent_api_key(async_app_client):
|
|
"""Test the get token endpoint with a non-existent API key"""
|
|
|
|
auth_response = await async_app_client.post(
|
|
"/v3/auth/token", json={"api_key": "ffffffff-0000-0000-0000-000000000000"}
|
|
)
|
|
|
|
assert auth_response.status_code == 403
|
|
assert 'error' in auth_response.json()
|