python-3.x - DRF,在 perform_authentication() 中,request.user 的测试仅在运行多个测试时设置为空字符串
问题描述
当我自己运行测试时,测试总是通过,但是即使在同一个测试类中与另一个测试一起运行时,它也会失败。我已经找到了没有设置 AnonymousUser 的 perform_authentication() 方法的原因,它被设置为一个空字符串。并非所有测试都发生这种情况,但可能是我编写的 415 个测试中的 20%。我对代码所做的更改是使用 Authorization 标头并删除了将凭据放入登录请求正文的代码。这不应该影响现在失败的大多数测试。
如果我通过捕获异常并退出该方法来覆盖 perform_authentication() 测试工作正常,但这显然不是我想要做的。
我会显示代码,但不确定要显示什么。测试有很多层,因为需要在许多端点上进行相同的测试。
有人对此授权的工作方式有更好的了解吗?
解决方案
您可以使用 rest_framework.APITestCase 来做到这一点。
self.client.credentials(HTTP_AUTHORIZATION='Bearer ' + token)
推荐阅读
- python - “IndexError:数组索引过多” - 似乎无法修复此错误消息?
- android - 具有自定义键/值比较的 Firebase 读/写规则
- java - maven 会为不同的生命周期阶段重新读取 pom 文件吗?
- android - 我想从 vpninterface 读取字节然后写回它
- r - 从 R 工作室连接到 SQL Server:“错误:nanodbc/nanodbc.cpp:983:00000:[unixODBC][驱动程序管理器]无法打开 lib '驱动程序':找不到文件”
- java - Gradle 构建开始失败并出现错误 - 无法解析配置“:编译”的所有文件
- sql - 删除按三列分组并按日期排序的旧记录
- reactjs - React Call on mount(使用钩子)希望依赖项仍在 TypeScript 中
- c - Valgrind 奇怪的内存泄漏
- python - 树莓派相机 101