gpt4 book ai didi

python - 如何从 ViewSet 类创建 Django REST Framework View 实例?

转载 作者:太空宇宙 更新时间:2023-11-04 06:40:06 24 4
gpt4 key购买 nike

我正在尝试unit 测试 Django REST Framework View 集权限,原因有两个:速度和简单性。为了实现这些目标,我还想避免使用任何模拟框架。基本上我想做这样的事情:

request = APIRequestFactory().post(…)
view = MyViewSet.as_view(actions={"post": "create"})
self.assertTrue(MyPermission().has_permission(request, view))

这种方法的问题是 view 实际上不是一个 View 实例,而是一个 function,它用 做一些事情查看实例,它没有我在has_permission中使用的某些属性,例如action。如何构建可传递给 has_permissionView 实例?

权限已经在集成和验收级别进行了测试,但我想避免创建几个复杂且耗时的测试来简单地检查每个相关操作是否受到保护。


我已经能够通过 monkeypatching View 集实例并手动调度它来解决这个问题:

view_set = MyViewSet()
view_set.action_map = {"post": "create"}
view_set.dispatch(request)

最佳答案

您可以执行如下操作。

request = APIRequestFactory().post(…)
view_obj = MyViewSet()
self.assertTrue(MyPermission().has_permission(request, view_obj))

关于python - 如何从 ViewSet 类创建 Django REST Framework View 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56945453/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com