Files
fastapi-users/tests/test_db_base.py
2019-10-09 16:52:06 +02:00

40 lines
1.3 KiB
Python

import pytest
from fastapi.security import OAuth2PasswordRequestForm
@pytest.fixture
def create_oauth2_password_request_form():
def _create_oauth2_password_request_form(username, password):
return OAuth2PasswordRequestForm(username=username, password=password, scope="")
return _create_oauth2_password_request_form
class TestAuthenticate:
@pytest.mark.asyncio
async def test_unknown_user(
self, create_oauth2_password_request_form, mock_user_db
):
form = create_oauth2_password_request_form("lancelot@camelot.bt", "guinevere")
user = await mock_user_db.authenticate(form)
assert user is None
@pytest.mark.asyncio
async def test_wrong_password(
self, create_oauth2_password_request_form, mock_user_db
):
form = create_oauth2_password_request_form("king.arthur@camelot.bt", "percival")
user = await mock_user_db.authenticate(form)
assert user is None
@pytest.mark.asyncio
async def test_valid_credentials(
self, create_oauth2_password_request_form, mock_user_db
):
form = create_oauth2_password_request_form(
"king.arthur@camelot.bt", "guinevere"
)
user = await mock_user_db.authenticate(form)
assert user is not None
assert user.email == "king.arthur@camelot.bt"