mar*_*che 5 python django unit-testing content-disposition python-requests
我定义了一个接受文件的API端点(例如使用Django REST Framework).在Django中,可以在检查响应时使用内容处置标头.
现在,如果我们想在测试端点时设置标头,如何使用REST-Framework的APITestCase包含此标头?
我到目前为止尝试的是,但它似乎不接受标题.
class TestSaleViews(APITestCase):
def test_sale_detail_view(self):
f = create_named_temporary_file()
files = {'archive': f}
basename = os.path.basename(f.name)
headers = {
'content-disposition': 'attachment; filename={}'.format(basename),
}
response = self.client.post(url, files, format='multipart', **headers)
Run Code Online (Sandbox Code Playgroud)
mar*_*che 13
找到答案了!
Django在其FileUploadParser中有一个固定的关键字.它是:HTTP_CONTENT_DISPOSITION
所以我需要更换它等瞧:工作!
headers = {
'HTTP_CONTENT_DISPOSITION': 'attachment; filename={}'.format(basename),
}
Run Code Online (Sandbox Code Playgroud)
https://github.com/encode/django-rest-framework/blob/master/rest_framework/parsers.py#L206