[英]Django: How to associate a user with a request factory
我正在Django網站上為表單編寫一些測試。 我想測試登錄的用戶是否可以使用假定正確輸入的表單。 為此,我正在使用Django請求工廠。 我似乎無法讓測試用戶登錄。 那,或者我什至沒有正確提出請求。 我不確定。 相關代碼如下:
def create_user():
username = 'User '+id_generator()
return User.objects.create(username = username, password = 'password')
def test_can_register_deck(self):
t = create_empty_tourney()
u = create_user()
d = create_deck(u)
rf = RequestFactory()
request = rf.post(reverse('tourney:tourney', args=(t.slug,)),{'deck' : d})
request.user = u
response = self.client.get(reverse('tourney:tourney', args=(t.slug,)), request)
self.assertEqual(response.status_code, 200)
該請求必須認為用戶已登錄,否則其余測試將無法進行。 這不會引發任何錯誤,但是我什至不確定我的response
是否正確利用了請求。 我是否正確地告訴測試“以該用戶身份向Tourney頁面發出發布請求,並嘗試提交卡片組”?
我認為RequestFactory
和客戶端是測試Django視圖的兩種不同方式。
從rf.post
返回的request
旨在直接傳遞給視圖函數。 如果您要這樣做,我想您會發現,該用戶將被檢測為已登錄。
我查看了源代碼和文檔,但沒有看到測試客戶端在哪里接受請求。 您可以使用以下方式使用測試客戶端登錄用戶:
self.client.login(
username=u.username,
password='password')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.