簡體   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