У меня есть представление/маршрутизатор Django-rest-framework для определения конечной точки API. Точка зрения определяется как таковая:
class DocumentViewSet(viewsets.ModelViewSet):
permission_classes = [permissions.IsAuthenticated, TokenHasReadWriteScope]
model = Document
И маршрутизатор определяется как
router = DefaultRouter()
router.register(r'documents', viewsets.DocumentViewSet)
с шаблоном url url(r'^api/', include(router.urls))
Я могу быстро удалить эту конечную точку в браузере/через завиток, получив нужный токен доступа и используя его для авторизации. Однако неясно, как писать тесты с этой конечной точкой.
Вот что я пробовал:
class DocumentAPITests(APITestCase):
def test_get_all_documents(self):
user = User.objects.create_user('test', '[email protected]', 'test')
client = APIClient()
client.credentials(username="test", password="test")
response = client.get("/api/documents/")
self.assertEqual(response.status_code, 200)
Это не выполняется с ответом HTTP 401 от вызова client.get()
. Каков правильный способ тестирования конечной точки API в DRF с помощью django-oauth-toolkit для аутентификации oauth2?