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})