funkwhale/api/tests/common/test_authentication.py

42 wiersze
1.3 KiB
Python

import pytest
from funkwhale_api.common import authentication
@pytest.mark.parametrize(
"setting_value, is_superuser, has_verified_primary_email, expected",
[
("mandatory", False, False, True),
("mandatory", False, True, False),
("mandatory", True, False, False),
("mandatory", True, True, False),
("optional", False, False, False),
("optional", False, True, False),
("optional", True, False, False),
("optional", True, True, False),
],
)
def test_should_verify_email(
setting_value,
is_superuser,
has_verified_primary_email,
expected,
factories,
settings,
):
settings.ACCOUNT_EMAIL_VERIFICATION = setting_value
user = factories["users.User"](
is_superuser=is_superuser, verified_email=has_verified_primary_email
)
assert user.should_verify_email() is expected
def test_app_token_authentication(factories, api_request):
user = factories["users.User"]()
app = factories["users.Application"](user=user, scope="read write")
request = api_request.get("/", HTTP_AUTHORIZATION=f"Bearer {app.token}")
auth = authentication.ApplicationTokenAuthentication()
assert auth.authenticate(request)[0] == app.user
assert request.scopes == ["read", "write"]