为了账号安全,请及时绑定邮箱和手机立即绑定

如何为受身份验证保护的 REST API 编写 Django 单元测试?

如何为受身份验证保护的 REST API 编写 Django 单元测试?

回首忆惘然 2021-08-05 14:49:29
我已经看过关于 SO 的两个答案,它们可能已经有了我的答案,但坦率地说,我只是不理解它们两个 SO 问题都使用不同的方法。我试图使用的方法是这样的。我创建了这个类:from rest_framework.test import APIClientfrom django.test import testcasesfrom django.contrib.auth.models import Userclass RemoteAuthenticatedTest(testcases.TestCase):    client_class = APIClient    def setUp(self):        self.username = 'mister_neutron'        self.user = User.objects.create_user(username='mister_neutron',                                          email='mister_neutron@example.com',                                             password='F4kePaSs0d')        super(RemoteAuthenticatedTest, self).setUp()我的单元测试如下所示:class InfoViewTestCase(RemoteAuthenticatedTest):    def create_info_record(self):        from random import randint        blade = 'test-blade-host-name-%s' % (randint(0, 100))        breachs = randint(0,100)        dimm = 'test dimm slot %s' % (randint(0,100))        url = reverse('info:info_creat')        data = {            'blade_hostname': blade,            'breach_count': breachs,            'dimm_slot': dimm,        }        response = self.client.post(url,                                     data,                                     format='json',                                     REMOTE_USER=self.username)        self.assertEqual(response.status_code, status.HTTP_201_CREATED)        self.assertEqual(Info.objects.count(), 1)        self.assertEqual(Info.objects.get().blade_hostname, blade)我的 settings.py 文件中有这个:#AuthenticationsREST_FRAMEWORK = {    'DEFAULT_AUTHENTICATION_CLASSES': (        'rest_framework.authentication.BasicAuthentication',        'rest_framework.authentication.SessionAuthentication',        'rest_framework.authentication.TokenAuthentication',    ),    'DEFAULT_PERMISSION_CLASSES': (        'rest_framework.permissions.IsAuthenticated',    ),}
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 102 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信