我正在爲我的Django應用程序編寫測試用例,但我使用Python中的請求包來訪問狀態碼,然後使用assert語句。這個測試用例僅適用於員工人數:如何在Django中使用請求庫獲取狀態碼
class StaffClientServerTestCase(TestCase):
def test_login_staff(self):
User.objects.create_superuser('abc', '[email protected]', '1234')
self.client.login(username='abc', password='1234')
self.client.get('/dashboard/')
s = requests.get('http://localhost:8000/dashboard/')
print s.status_code
self.assertEqual(200, s.status_code)
只有員工的用戶才能訪問到儀表板,所以我創建了一個工作人員的用戶對象。以下行
self.client.login(username='abc', password='1234')
即將成爲事實。 self.client.get('/dashboard/')
如果我打印出此行,它會顯示頁面的html內容,這意味着我的工作人員用戶可以訪問dashboard
。
但是當我使用請求模塊查看dashboard
url的狀態代碼時,它顯示status code = 500
,而且我的測試失敗了。
s = requests.get('http://localhost:8000/dashboard/') print s.status_code
誰能告訴我在哪裏,我錯了嗎?爲什麼我的狀態碼出來的時候是500,即使工作人員用戶可以訪問儀表板並使用print self.client.get('/dashboard/')
打印出其內容。幫幫我!
您應該在'requests.get'中指定auth憑證,或者在測試中不使用'requests.get',並測試'self.client',因爲您使用'self.client'方法登錄並且' requests.get'是另一回事,所以使用'self.client'登錄並不意味着你將會被其他庫(比如'requests')進行認證。仔細想想你應該做什麼測試和測試。此外,如果您只是未通過身份驗證,則HTTP 500不是正確的狀態碼,因此您應該修復儀表板。 – dopstar
任何想法如何獲得狀態代碼?我需要通過狀態碼進行測試。 – python
我禁用了我的管理頁面,這就是爲什麼我得到的狀態代碼爲500. – python