Allow providing REST API authentication token with Bearer keyword (#995)

This commit is contained in:
Sascha Ißbrücker
2025-02-22 19:59:53 +01:00
committed by GitHub
parent 30f85103cd
commit 2e97b13bad
3 changed files with 67 additions and 1 deletions

View File

@@ -0,0 +1,32 @@
from django.urls import reverse
from rest_framework import status
from rest_framework.authtoken.models import Token
from bookmarks.tests.helpers import LinkdingApiTestCase, BookmarkFactoryMixin
class AuthApiTestCase(LinkdingApiTestCase, BookmarkFactoryMixin):
def authenticate(self, keyword):
self.api_token = Token.objects.get_or_create(
user=self.get_or_create_test_user()
)[0]
self.client.credentials(HTTP_AUTHORIZATION=f"{keyword} {self.api_token.key}")
def test_auth_with_token_keyword(self):
self.authenticate("Token")
url = reverse("bookmarks:user-profile")
self.get(url, expected_status_code=status.HTTP_200_OK)
def test_auth_with_bearer_keyword(self):
self.authenticate("Bearer")
url = reverse("bookmarks:user-profile")
self.get(url, expected_status_code=status.HTTP_200_OK)
def test_auth_with_unknown_keyword(self):
self.authenticate("Key")
url = reverse("bookmarks:user-profile")
self.get(url, expected_status_code=status.HTTP_401_UNAUTHORIZED)