You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django视图测试中同类登录代码仅单类生效问题求助

问题

我正在跟着MDN教程为locallibrary应用编写测试,两个视图测试类使用了相似的登录代码,但只有其中一个类的登录功能生效。我已经检查过拼写并对比了两个类的代码,相关代码片段如下:

登录失败的测试类代码

class AuthorCreateViewTest(TestCase):
    def setUp(self):
        # 创建两个用户
        test_user1 = User.objects.create_user(username='testuser1', password='fjo&*&d3h')
        test_user2 = User.objects.create_user(username='testuser2', password='J9cdj8we9')

        test_user1.save()

        # 给test_user2添加还书权限
        permission = Permission.objects.get(name='Set book as returned')
        test_user2.user_permissions.add(permission)
        test_user2.save()

    def test_view_url_accessible_by_name(self):
        login = self.client.login(username='testuser2', password='J9cdj8we9')
        
        response = self.client.get(reverse('author-create'))
        self.assertEqual(response.status_code, 200)

登录成功的测试类代码

class RenewBookInstancesViewTest(TestCase):
    def setUp(self):
        # 创建两个用户
        test_user1 = User.objects.create_user(username='testuser1', password='fjo&*&d3h')
        test_user2 = User.objects.create_user(username='testuser2', password='J9cdj8we9')

        test_user1.save()
        test_user2.save()

        # 给test_user2添加还书权限
        permission = Permission.objects.get(name='Set book as returned')
        test_user2.user_permissions.add(permission)
        test_user2.save()

    def test_logged_in_with_permission_borrowed_book(self):
        login = self.client.login(username='testuser2', password='J9cdj8we9')
        response = self.client.get(reverse('renew-book-librarian', kwargs={'pk':self.test_bookinstance2.pk}))

        # 验证登录成功——这是我们的书籍,且拥有对应权限
        self.assertEqual(response.status_code, 200)

完整代码可查看项目中catalog/tests/test_views.py文件。


内容的提问来源于stack exchange,提问作者rad2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 07:37:25