인증을 위해 JWT 패키지와 함께 DRF를 사용하고 있습니다. 자, JWT 토큰으로 자체를 인증하는 단위 테스트를 작성하려고합니다. 아무리 시도해도 테스트 API 클라이언트가 JWT를 통해 자체 인증을받을 수 없습니다. API 클라이언트 (필자의 경우 Postman)와 동일한 작업을 수행하면 모든 것이 작동합니다. Django Rest Framework JWT 유닛 테스트
이
테스트 케이스이다 :from django.urls import reverse
from rest_framework.test import APITestCase
from rest_framework_jwt.settings import api_settings
from backend.factories import member_factory
jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER
jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER
class MemberTests(APITestCase):
def test_get_member(self):
member = member_factory()
payload = jwt_payload_handler(member.user)
token = jwt_encode_handler(payload)
self.client.credentials(Authorization='JWT {0}'.format(token))
response = self.client.get(reverse('member-detail', kwargs={'pk': member.pk}))
assert response.status_code == 200
그러나 나는 항상 401 Authentication credentials were not provided
를 얻을.
response.request
나는 토큰이 있다는 것을 알았습니다. 단지 적용되지 않았을 것입니다.
rest_framework.test.RequestsClient
을 사용하도록 테스트를 다시 작성하고 실제로 live_server URL로 보내면 작동합니다.
어떤 도움이 필요합니까?
P. force_authenticate()
과 login을 알고 있지만, 단위 테스트에서 API 클라이언트가 프로덕션 환경과 동일한 방식으로 API에 액세스하기를 바랍니다.
두 분이 내 하루를 보냈습니다. 감사합니다 –