41 lines
1.3 KiB
Python
41 lines
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)
|
|
setattr(user, "has_verified_primary_email", has_verified_primary_email)
|
|
assert authentication.should_verify_email(user) 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="Bearer {}".format(app.token))
|
|
|
|
auth = authentication.ApplicationTokenAuthentication()
|
|
assert auth.authenticate(request)[0] == app.user
|
|
assert request.scopes == ["read", "write"]
|