Skip to content
Snippets Groups Projects
test_jwt_querystring.py 1.01 KiB
Newer Older
  • Learn to ignore specific revisions
  • from test_plus.test import TestCase
    from rest_framework_jwt.settings import api_settings
    
    from funkwhale_api.users.models import User
    
    
    jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER
    jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER
    
    
    class TestJWTQueryString(TestCase):
        www_authenticate_realm = 'api'
    
        def test_can_authenticate_using_token_param_in_url(self):
            user = User.objects.create_superuser(
                username='test', email='test@test.com', password='test')
    
            url = self.reverse('api:v1:tracks-list')
            with self.settings(API_AUTHENTICATION_REQUIRED=True):
                response = self.client.get(url)
    
            self.assertEqual(response.status_code, 401)
    
            payload = jwt_payload_handler(user)
            token = jwt_encode_handler(payload)
            print(payload, token)
            with self.settings(API_AUTHENTICATION_REQUIRED=True):
                response = self.client.get(url, data={
                    'jwt': token
                })
    
                self.assertEqual(response.status_code, 200)