我一直尝试使用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)
答案 0 :(得分:2)
我认为你应该做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"