Django - Тестирование конечных точек с аутентификацией
Как протестировать конечные точки в Django и убедиться, что они имеют действительный токен JWT при выполнении запроса? Я использую AWS cognito и amplify. У меня есть следующие тесты, и все эти конечные точки требуют авторизации пользователя. Есть ли способ сгенерировать поддельный токен пользователя с помощью AWS cognito или amplify во время тестирования, а затем передать его при выполнении этих тестов?
tests.py
class PostTest(TestCase):
@classmethod
# Generates Test DB data to persist throughout all tests
def setUpTestData(cls) -> None:
GoalCategory.objects.create(category='other', emoji_url='url')
cls.user = UserFactory()
cls.goal = GoalFactory()
def test_create(self):
response = self.client.post(reverse('post'),
data=json.dumps({'creator_id': str(self.user.uuid),
'goal_id': str(self.goal.uuid),
'body': 'Some text #Test'}),
content_type='application/json')
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
def test_improper_goal(self):
response = self.client.post(reverse('post'),
data=json.dumps({'creator_id': str(self.user.uuid),
'goal_id': 'some messed up UUID',
'body': 'Some text #Test'}),
content_type='application/json')
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
все вышеперечисленные тестируемые запросы имеют
token = request.META['HTTP_AUTHORIZATION'].split(' ')[1]
print(token)
try:
res = jwt.decode_cognito_jwt(token)
except:
return Response("Invalid JWT", status=status.HTTP_401_UNAUTHORIZED)