2017-10-28 6 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インスタンスを再度取得してみてください。

また、投稿が成功したことを確認できるように、投稿の返信にアセットを付けてください。

関連する問題