JWT でのログインができるかどうかを確認するテスト
Django Rest Framework + allauth 使用時に JWT での Login ができているかどうかを念の為確認するテスト。
import pytest from django.urls import reverse from atma.shops.models import Shop from .factories import UserFactory @pytest.mark.django_db def test_authorized_by_jwt(client): """Json Web Token で login できる""" user = UserFactory() # type: User user.set_password('hogehoge') user.save() url = reverse('accounts_me') res = client.get(url) assert res.status_code == 401, res.json() auth_url = reverse('rest_login') res = client.post(auth_url, data={'email': user.email, 'password': 'hogehoge'}) assert res.status_code == 200, res.json() jwt_token = res.json().get('accessToken', None) assert jwt_token is not None header = {'HTTP_AUTHORIZATION': 'JWT {}'.format(jwt_token)} res = client.get(url, **header) assert res.status_code == 200, res.json()
- パスワードの設定は
user.set_password
で行なう - header を kwrgs で渡す
"HTTP_AUTHORIZATION"
を key にする
の3点がポイント