问题标签 [django-webtest]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - Django-Webtest 中的用户权限缓存
我的项目使用自定义身份验证后端来管理用户权限,使身份验证本身保持不变(由 Django 处理)。后端本身工作正常,但在使用 Django WebTest 构建的测试中开始失败。经过一番挑选,我发现罪魁祸首是 DWT 将另一个身份验证后端注入settings.AUTHENTICATION_BACKENDS
.
我的后端直接扩展了 Django 的ModelBackend
,而 DWT 自己的后端是基于 offRemoteUserBackend
的,最终也是ModelBackend
. 这一点很重要,因为虽然 DWT 没有定义has_perm
方法,但它仍然存在于其后端。
执行测试时,缓存有问题的用户对象的权限django.contrib.auth.backends.ModelBackend
:get_all_permissions()
has_perm
由于 DWT 的后端首先出现在测试中,缓存被填充并且不会包含我的后端设置的权限,最终导致has_perm
测试失败。参考 Django 中的代码片段:
我在后端做错了什么还是 DWT 作者的疏忽?在测试中如何继续使用我的自定义权限逻辑?