Python Django rest framework测试中未经身份验证的用户获取请求错误

Python Django rest framework测试中未经身份验证的用户获取请求错误,python,django-rest-framework,tdd,Python,Django Rest Framework,Tdd,我正在尝试在url上测试get请求,该url要求对用户进行身份验证。如果用户未经身份验证,则必须返回HTTP\u 401 UNAUTHORIZED错误作为响应状态代码。为此,我创建了一个测试用例,尝试在没有身份验证的情况下触发get请求 测试用例 class PublicTagsApiTests(测试用例): “”“测试公开可用的标记API”“” def设置(自): self.client=APIClient() 需要def测试登录(自我): “”“测试检索标记是否需要登录”“” res=sel

我正在尝试在url上测试get请求,该url要求对用户进行身份验证。如果用户未经身份验证,则必须返回HTTP\u 401 UNAUTHORIZED错误作为响应状态代码。为此,我创建了一个测试用例,尝试在没有身份验证的情况下触发get请求

测试用例

class PublicTagsApiTests(测试用例):
“”“测试公开可用的标记API”“”
def设置(自):
self.client=APIClient()
需要def测试登录(自我):
“”“测试检索标记是否需要登录”“”
res=self.client.get(反向('recipe:taglist'))
self.assertEqual(res.status\u代码,status.HTTP\u 401\u未经授权)
但测试失败,返回错误:

TypeError:int()参数必须是字符串、类似于对象的字节或数字,而不是“AnonymousUser”

查看

class TagViewSet(viewsets.GenericViewSet,Mixin.ListModelMixin):
“”“管理数据库中的标记”“”
身份验证\类=(令牌身份验证)
权限=(已验证,)
queryset=Tag.objects.all()
serializer\u class=serializers.TagSerializer
def get_queryset(自我):
“”“仅为当前经过身份验证的用户返回对象”“”
返回self.queryset.filter(user=self.request.user).order_by('-name'))
序列化程序

类标记序列化程序(serializers.ModelSerializer):
“”“标记对象的序列化程序”“”
类元:
型号=标签
字段=('id','name')
只读字段=('id',)

如何修改视图以通过测试?

在TagViewSet中尝试更改:

permission = (IsAuthenticated,)
致:


权限-->permission\u classes尽管
permission\u classes=(已验证,)
有效,将元组更改为列表有什么意义?将元组更改为列表不是为了。。。重点是将名称权限更改为permission_classes是的,但是什么;使用列表和元组的区别是什么?让我们来看看。
permission_classes = [IsAuthenticated]