mis*_*rte 6 testing django client request
我在使用 django 的客户端类测试我的应用程序时尝试访问 request.user 对象。
from django.test import TestCase
from django.test.client import Client
class SomeTestCase(TestCase):
def setUp(self):
self.client = Client()
self.client.login( username="foo", password="bar")
def test_one(self):
response = self.client.get("/my_profile/")
self.fail( response.request.user )
Run Code Online (Sandbox Code Playgroud)
这显然会失败,但它失败是因为response.request没有用户属性。
AttributeError: 'dict' object has no attribute 'user'
Run Code Online (Sandbox Code Playgroud)
有什么方法可以从客户端实例访问用户对象吗?我想这样做是为了检查某些测试用户的数据是否正确呈现。我可以尝试通过在设置过程中设置所有必要的信息来解决这个问题,但在这样做之前,我想检查一下我是否遗漏了一些东西。
使用response.context['user']。
如果您使用 ,则用户将自动在模板上下文中可用RequestContext。请参阅模板文档中的身份验证数据。
否则我相信你应该查询它:
def test_one(self):
response = self.client.get("/my_profile/")
user = User.objects.get(username="foo")
self.fail( user.some_field == False )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7109 次 |
| 最近记录: |