【发布时间】:2014-09-01 09:50:24
【问题描述】:
我正在为我的 Django 项目编写一些测试,我正在尝试测试登录函数和将在“user_passes_test”装饰器中的函数,在这个特定的测试中,一个名为“is_teacher”的函数。不幸的是,我不太确定如何从响应中获取用户对象。我尝试的是以下内容,但我只收到“'dict'对象没有属性'user'”的错误。
user = User.objects.create_user(
first_name='Elmar',
last_name='Fudd',
username='ef123',
email='e.fudd@acme.edu',
password='rabbitseason'
)
self.client.login(
username='elmar', password='rabbitseason')
response = self.client.get('/')
request = response.request
self.assertTrue(is_teacher(request.user))
如何从响应中获取登录用户?
【问题讨论】:
-
你用什么来创建你的用户?你确定你的数据库中有他的条目吗?你用过固定装置吗?还是什么?
-
已将我创建用户的部分添加到上面的部分。感谢您的关注!
-
假设您使用的是默认的 Django 用户模型,您必须在创建用户时设置密码,因为是加密的。看看这个链接...docs.djangoproject.com/en/1.7/topics/testing/tools/…
-
我愿意 - 我使用 create_user 方法自动加密密码(如您提供的链接中所述)
-
我明白了,尝试在您的设置类中创建用户...就像这里docs.djangoproject.com/en/1.7/topics/testing/advanced/#example
标签: django authentication testing