在测试模式Django Rest中从Post请求接收数据

时间:2017-11-16 01:45:46

标签: unit-testing django-rest-framework django-tests

如果在登录后生成令牌,我将如何在测试模式下获取令牌

client = APIClient()
client.post('/api/login/', {'username': 'username', 'password': 'password'}, format='json')

并且在请求之后必须在json中返回令牌密钥的响应。使用dev服务器的请求工作正常,但如何在TEST模式下使用?

1 个答案:

答案 0 :(得分:0)

你可以在django-rest-framework测试用例。当测试用例运行时,它将创建一个新数据库,因此我们在数据库中没有任何数据。 之后它将调用方法setUp来创建要在测试中使用的所需数据。

from rest_framework.test import APITestCase

class AccountTests(APITestCase):

   def setUp(self):
       super(AccountTests, self).setUp()
       user = User.objects.create(user_name='username')
       user.set_password('password')
       user.save()
       self.token = Token.objects.create(user=user)

   def test_login(self):
      url = '/api/login/'
      data = {'username': 'username', 'password': 'password'}
      response = self.client.post(url, data, format='json')
      # key = response.json()['token']
      # self.assertEqual(key, self.token.key)