2017-10-28 86 views
0

我想測試我的用戶是否正確註銷。我可以登錄。我嘗試以同樣的方式登錄,但測試失敗。我無法弄清楚爲什麼。如何使用client.post()測試django註銷?

爲什麼這個測試失敗?

def test_user_can_login_and_logout(self): 
    response = self.client.post('/login/', {'username': 'login', 'password': 'pass'}) 
    user = auth.get_user(self.client) 
    self.assertEqual(user.is_authenticated(), True) # This works fine 
    self.client.post('/logout/') 
    self.assertEqual(user.is_authenticated(), False) # This fails. 

urls.py

from django.conf.urls import url 
from django.contrib.auth import views as auth_views 

urlpatterns = [ 
     (...) 
     url(r'^login/$', auth_views.login, {'template_name': 'home/login.html'}, name='login'), 
     url(r'^logout/$', auth_views.logout, name='logout'), 
     (...) 
     ] 

在的問題,我跳過負責數據庫中創建測試用戶的代碼。

+0

這段代碼的失敗是什麼? –

回答

0

因爲該帖子將要修改用戶對象的另一個副本。嘗試在註銷後再次獲取User實例。

此外,請確保您資產的帖子的迴應,以便您可以確認帖子是成功的。