使用 override_settings 构建预装饰类以加快 client.login 速度?

问题描述 投票:0回答:1

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

from django.test import TestCase, Client, override_settings

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

有没有办法创建我自己的带有内置装饰器的 TestCase 子类,这样我就可以像这样编码? (当我发现我的新测试运行缓慢时,我一直不得不查找该设置来覆盖!)

from myproject.utils import FastLoginTestCase

class Test2( FastLoginTestCase):
    ...
django python-decorators django-testing
1个回答
0
投票

您可以在

__init_subclass__
方法中将装饰器应用到子类:

class FastLoginTestCase(TestCase):
    def __init_subclass__(cls):
        cls = override_settings(
            PASSWORD_HASHERS = ["django.contrib.auth.hashers.MD5PasswordHasher"]
        )(cls)
© www.soinside.com 2019 - 2024. All rights reserved.