mirror of
https://github.com/fastapi-users/fastapi-users.git
synced 2025-08-14 18:58:10 +08:00

* Revamp Transport so they always build a full Response object * Fix linting * Add private methods to set cookies on CookieTransport * Change on_after_login login_return parameter to response
45 lines
1.4 KiB
Python
45 lines
1.4 KiB
Python
import pytest
|
|
from fastapi import status
|
|
from fastapi.responses import JSONResponse
|
|
|
|
from fastapi_users.authentication.transport import (
|
|
BearerTransport,
|
|
TransportLogoutNotSupportedError,
|
|
)
|
|
from fastapi_users.authentication.transport.bearer import BearerResponse
|
|
|
|
|
|
@pytest.fixture()
|
|
def bearer_transport() -> BearerTransport:
|
|
return BearerTransport(tokenUrl="/login")
|
|
|
|
|
|
@pytest.mark.authentication
|
|
@pytest.mark.asyncio
|
|
async def test_get_login_response(bearer_transport: BearerTransport):
|
|
response = await bearer_transport.get_login_response("TOKEN")
|
|
|
|
assert isinstance(response, JSONResponse)
|
|
assert response.body == b'{"access_token":"TOKEN","token_type":"bearer"}'
|
|
|
|
|
|
@pytest.mark.authentication
|
|
@pytest.mark.asyncio
|
|
async def test_get_logout_response(bearer_transport: BearerTransport):
|
|
with pytest.raises(TransportLogoutNotSupportedError):
|
|
await bearer_transport.get_logout_response()
|
|
|
|
|
|
@pytest.mark.authentication
|
|
@pytest.mark.openapi
|
|
def test_get_openapi_login_responses_success(bearer_transport: BearerTransport):
|
|
openapi_responses = bearer_transport.get_openapi_login_responses_success()
|
|
assert openapi_responses[status.HTTP_200_OK]["model"] == BearerResponse
|
|
|
|
|
|
@pytest.mark.authentication
|
|
@pytest.mark.openapi
|
|
def test_get_openapi_logout_responses_success(bearer_transport: BearerTransport):
|
|
openapi_responses = bearer_transport.get_openapi_logout_responses_success()
|
|
assert openapi_responses == {}
|