繁体   English   中英

使用超级用户Django 1.9,Python 3.5和超级用户的凭据测试登录

[英]Test Login with credentials as superuser Django 1.9, Python 3.5

我一直试图以超级用户身份登录以使用Django 1.9和Python 3.5来测试驱动器管理功能,但是我的登录一直失败。

这是测试。 在最后一个断言中,它总是返回false:

class TestAdmin(TestCase):
    def setUp(self):
        self.client = Client()
    def test_login(self):
        my_admin = User(username='user', email='user@email.com')
        my_admin.set_password('passphrase')
        my_admin.is_superuser=True
        my_admin.is_staff=True
        response = self.client.get('/admin/', follow=True)
        self.assertEqual(response.status_code, 200)
        self.assertTrue('Log in' in response.content.decode('utf-8'))
        loginresponse = self.client.login(username='user', email='user@email.com',
                                          password='passphrase')
        self.assertTrue(loginresponse)  

我认为你应该做my_admin.save()

您的.is_staff=True用户需要保存到在测试运行时创建的用户“数据库”中。 使用以下脚本,该权限应该可以:

class TestAdmin(TestCase):

    def setUp(self):
        self.client = Client()
        self.my_admin = User(username='user', is_staff=True)
        my_admin.set_password('passphrase') # can't set above because of hashing
        my_admin.save() # needed to save to temporary test db
        response = self.client.get('/admin/', follow=True)
        loginresponse = self.client.login(username='user',password='passphrase')
        self.assertTrue(loginresponse) # should now return "true"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM