我可以在Django测试中避免使用permission_required装饰器吗?

Jos*_*iño 1 python testing django

我正在测试一组Django应用程序,它们广泛使用'permission_required'装饰器.这在我拥有的大多数视图中都得到了302 HTTP响应.

我的问题是:有什么方法可以避免或停用测试中的'permission_required',所以当我调用我的视图而不是302时,我可以获得200响应?

谢谢!

Aar*_*ron 5

只需在测试用例setUp方法中使用超级用户登录即可


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)
Run Code Online (Sandbox Code Playgroud)