2017-10-28 59 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实例。

此外,请确保您资产的帖子的回应,以便您可以确认帖子是成功的。