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)
Вернуться на верх