python – 具有版本控制的DRF测试视图:版本化URL检索

python – 具有版本控制的DRF测试视图:版本化URL检索,第1张

概述我之前为我的观点创建了一些测试.像那样 class TestUserRegistrationViewUserCreate(APITestCase):def setUp(self): self.factory = APIRequestFactory()def test_create_user(self): data = { 'phone_number': '+7 我之前为我的观点创建了一些测试.像那样

class TestUserRegistrationVIEwUserCreate(APITestCase):def setUp(self):    self.factory = APIRequestFactory()def test_create_user(self):    data = {        'phone_number': '+79513332211','password': 'qwerty'    }    request = self.factory.post(reverse('user'),data=data)    response = CustomUserAPIVIEw.as_vIEw()(request)    self.assertEqual(response.status_code,status.http_201_CREATED)

一切都很顺利,直到我被要求添加API版本.

DRF支持本机版本http://www.django-rest-framework.org/api-guide/versioning/
所以我只是使用它并将基于命名空间的版本控制添加到我的API中

REST_FRAMEWORK = {    'DEFAulT_VERSIONING_CLASS': 'rest_framework.versioning.namespaceVersioning'}

现在我需要重写我的视图单元测试以支持版本控制.

这个问题是为了通过反向获取版本化的url,我必须使用

from rest_framework.reverse import reversereverse('bookings-List',request=request)

就像在docs.

但是我在测试中没有请求对象,因为我自己创建了一个请求对象并且需要使用版本化的url.

我该怎么办?

附:我可以在不使用DRF的情况下实现版本控制,使用视图装饰器和一些utils函数来解决这个问题,但是当我重新发明轮子时,这对我来说感觉不好.另外,我也可能会忘记一些边缘情况.

解决方法 我在测试用例中使用了反向(‘< VERSION>:< VIEW_name>‘). 总结

以上是内存溢出为你收集整理的python – 具有版本控制的DRF测试视图:版本化URL检索全部内容,希望文章能够帮你解决python – 具有版本控制的DRF测试视图:版本化URL检索所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1196127.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存