如何使用client.post()测试django注销?
问题描述:
我想测试我的用户是否正确注销。我可以登录。我尝试以同样的方式登录,但测试失败。我无法弄清楚为什么。如何使用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'),
(...)
]
在的问题,我跳过负责数据库中创建测试用户的代码。
答
因为该帖子将要修改用户对象的另一个副本。尝试在注销后再次获取User实例。
此外,请确保您资产的帖子的回应,以便您可以确认帖子是成功的。
这段代码的失败是什么? –