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"]