Skip to content
Snippets Groups Projects
test_auth.py 1.17 KiB
Newer Older
  • Learn to ignore specific revisions
  • from django.urls import reverse
    from rest_framework_jwt.settings import api_settings
    
    jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER
    jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER
    
    
    def test_can_authenticate_using_jwt_token_param_in_url(factories, preferences, client):
        user = factories["users.User"]()
        preferences["common__api_authentication_required"] = True
        url = reverse("api:v1:tracks-list")
        response = client.get(url)
    
        assert response.status_code == 401
    
        payload = jwt_payload_handler(user)
        token = jwt_encode_handler(payload)
        response = client.get(url, data={"jwt": token})
        assert response.status_code == 200
    
    
    def test_can_authenticate_using_oauth_token_param_in_url(
        factories, preferences, client, mocker
    ):
        mocker.patch(
            "funkwhale_api.users.oauth.permissions.should_allow", return_value=True
        )
        token = factories["users.AccessToken"]()
        preferences["common__api_authentication_required"] = True
        url = reverse("api:v1:tracks-list")
        response = client.get(url)
    
        assert response.status_code == 401
    
        response = client.get(url, data={"token": token.token})
        assert response.status_code == 200