这使得使用测试客户端的Django测试运行得更快,其中登录安全性不是测试的重要组成部分

from django.test import TestCase, Client, override_settings

@override_settings(
    PASSWORD_HASHERS = [ "django.contrib.auth.hashers.MD5PasswordHasher"  ])
class Test2(TestCase):
    ...

有没有办法用内置的decorator 创建我自己的TestCase子集,这样我就可以这样编写代码?(当我发现我的新测试运行缓慢时,我必须不断查找该设置才能覆盖!)

from myproject.utils import FastLoginTestCase

class Test2( FastLoginTestCase):
    ...

推荐答案

您可以将decorator 应用于__init_subclass__方法中的子集:

class FastLoginTestCase(TestCase):
    def __init_subclass__(cls, **kwargs):
        super().__init_subclass__(**kwargs)
        cls = override_settings(
            PASSWORD_HASHERS = ["django.contrib.auth.hashers.MD5PasswordHasher"]
        )(cls)

Django相关问答推荐

Django中的登录重定向

在Django中提交表单后更改模型数据

如何保护单个数据库行/模型实例?

try 获取静态文件路径时 Django 给出错误

通过 OrderingFilter 过滤平均和

Django通用列表视图与多查询搜索

自定义身份验证 django

重建 Dockerfile 后,Django celery 无法从celery导入名称Celery

Django - 将 HTML 输出转换为变量

如何在 Django ORM 中执行 GROUP BY ... COUNT 或 SUM?

如何使用自定义 AdminSite 类?

可以在基于 Django 类的视图中设置实例变量吗?

如何在 Django 中向 ChoiceField 添加class?

使用 scrapy 访问 Django 模型:定义 Django 元素的路径

django.core.exceptions.ImproperlyConfigured:请求设置 USE_I18N,但未配置设置

使用直通模型了解 Django 中的多对多字段

Django 有 SmallIntegerField 的原因是什么?

在 PyPy 下运行 Django 的缺点?

用于创建和更新的基于 Django 类的视图

ModelForm 上的 Django 和字段集