【问题标题】:Receive data from Post request in TEST mode Django Rest在 TEST 模式下接收来自 Post 请求的数据 Django Rest
【发布时间】:2017-11-16 01:45:45
【问题描述】:
如果登录后生成令牌,我如何在测试模式下获取令牌
client = APIClient()
client.post('/api/login/', {'username': 'username', 'password': 'password'}, format='json')
请求后必须在 json 中返回 Token 键的响应。对开发服务器使用请求可以正常工作,但如何在 TEST 模式下使用?
【问题讨论】:
标签:
unit-testing
django-rest-framework
django-tests
【解决方案1】:
您可以使用 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)