我有一个 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))
通过获取正确的访问令牌并使用它进行授权,我可以在浏览器中/通过curl 很好地访问此端点。但是,尚不清楚如何针对此端点编写测试。
这是我尝试过的:
class DocumentAPITests(APITestCase):
def test_get_all_documents(self):
user = User.objects.create_user('test', '[email protected] /cdn-cgi/l/email-protection', 'test')
client = APIClient()
client.credentials(username="test", password="test")
response = client.get("/api/documents/")
self.assertEqual(response.status_code, 200)
此操作失败,并显示来自以下地址的 HTTP 401 响应:client.get()
称呼。使用 django-oauth-toolkit 进行 oauth2 身份验证来测试 DRF 中的 API 端点的正确方法是什么?