python – Django REST框架 – 在串行器测试中设置请求?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – Django REST框架 – 在串行器测试中设置请求?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1141字,纯文字阅读大概需要2分钟。
内容图文
我构建了一个Web应用程序,其中后端是使用Django REST Framework实现的.现在我正在编写单元测试,我在测试序列化器方法时遇到了问题.这是我正在努力解决的序列化方法的一个例子:
def get_can_edit(self, obj):
request = self.context.get('request')
user = User.objects.get(username=request.user)
return user == obj.admin
当试图从测试中调用它时,首先我声明一个序列化器的实例:
self.serializer = ConferenceSerializer()
但是现在我需要self.serializer来获取正确的请求,当get_can_edit执行self.context.get(‘request’)时.我使用RequestFactory创建了一个包含正确信息的虚假请求:
self.request1 = RequestFactory().get('./fake_path')
self.request1.user = self.user1
现在我卡住了,因为我不确定如何将request1添加到序列化程序,以便self.context.get(‘request’)将返回request1.
谢谢.
解决方法:
在测试中实例化序列化程序时,需要传递context参数以将request1添加到序列化程序的上下文中.
来自including extra context:的DRF文档
You can provide arbitrary additional context by passing a
context
argument when instantiating the serializer.
你需要做一些事情:
# pass context argument
self.serializer = ConferenceSerializer(context={'request': request1})
这将在其上下文中为您的序列化程序提供所需的request1对象.
内容总结
以上是互联网集市为您收集整理的python – Django REST框架 – 在串行器测试中设置请求?全部内容,希望文章能够帮你解决python – Django REST框架 – 在串行器测试中设置请求?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。