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检索所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)