Skip to main content
 首页 » 编程设计

python之我可以在 Django 测试中避免 permission_required 装饰器吗

2025年05月04日22zhengyun_ustc

我正在测试一组广泛使用“permission_required”装饰器的 Django 应用程序。在我所拥有的大多数 View 中,这源自 302 HTTP 响应。

我的问题是:有什么方法可以避免或停用测试中的“permission_required”,这样我在调用我的 View 时可以获得 200 响应,而不是 302?

谢谢!

请您参考如下方法:

只需在您的测试用例设置方法中使用 super 用户登录

 
from django.test import TestCase 
from django.contrib.auth.models import User 
 
class TestThatNeedsLogin(TestCase): 
    def setUp(self): 
        User.objects.create_superuser( 
            'user1', 
            'user1@example.com', 
            'pswd', 
        ) 
        self.client.login(username="user1", password="pswd") 
 
    def tearDown(self): 
        self.client.logout() 
 
    def test_something(self): 
        response = self.client.get("/") 
        self.assertEqual(200, response.status_code)