Python 如何使用request.is#ajax()和request.method==';邮政';在Django中使用unittest?
我有下一个功能Python 如何使用request.is#ajax()和request.method==';邮政';在Django中使用unittest?,python,django,unit-testing,django-unittest,Python,Django,Unit Testing,Django Unittest,我有下一个功能 def edit_resolution_text_view(self, request): if request.method == 'POST' and request.is_ajax(): resolution = request.POST.get('resolution') donation_id = request.POST.get('donation') result = D
def edit_resolution_text_view(self, request):
if request.method == 'POST' and request.is_ajax():
resolution = request.POST.get('resolution')
donation_id = request.POST.get('donation')
result = Donation.objects.filter(pk=donation_id).\
update(resolution_note=resolution)
if not result:
return JsonResponse({'message': 'Error'})
return JsonResponse({'resolution': resolution})
return JsonResponse({'message': 'Error'})
如何使用unittest
此函数位于Django modelAdmin中
我将实例定义为self.generation\u admin=DonationAdmin(model=generation,admin\u site=AdminSite())
,并将函数调用为
self.generation\u admin.edit\u resolution\u text\u view(…)
最简单的方法是使用unittest中的客户端
,并调用解析给您的enpoint函数。is_ajax()
方法只是检查请求中是否存在带有“:”XMLHttpRequest”头的HTTP_X_请求。因此,您可以将其添加到测试请求中
class TesteditResultionTextView(unittest.TestCase):
def测试_获取(自身):
response=self.client.get('/url_to_my_view/',**{HTTP_X_REQUESTED_WITH':'XMLHttpRequest'})
self.assertEqual(response.json(),{'message':'Error'})
def测试后(自):
预期的分辨率=#将您预期的内容放在这里
response=self.client.post('/url_to_my_view/',**{HTTP_X_REQUESTED_WITH':'XMLHttpRequest'})
self.assertEqual(response.json(),{'resolution':预期的_resolution})