【发布时间】:2015-02-22 20:31:33
【问题描述】:
我有一个 Django-rest-framework 视图集/路由器来定义 API 端点。视图集是这样定义的:
class DocumentViewSet(viewsets.ModelViewSet):
permission_classes = [permissions.IsAuthenticated, TokenHasReadWriteScope]
model = Document
而路由器定义为
router = DefaultRouter()
router.register(r'documents', viewsets.DocumentViewSet)
带有网址格式url(r'^api/', include(router.urls))
通过获取正确的访问令牌并将其用于授权,我可以在浏览器中/通过 curl 访问此端点。但是,尚不清楚如何针对此端点编写测试。
这是我尝试过的:
class DocumentAPITests(APITestCase):
def test_get_all_documents(self):
user = User.objects.create_user('test', 'test@test.com', 'test')
client = APIClient()
client.credentials(username="test", password="test")
response = client.get("/api/documents/")
self.assertEqual(response.status_code, 200)
这将失败,来自client.get() 调用的 HTTP 401 响应。使用 django-oauth-toolkit 进行 oauth2 身份验证在 DRF 中测试 API 端点的正确方法是什么?
【问题讨论】:
标签: python django testing oauth-2.0 django-rest-framework