[英]How to test file response in Django?
我有一个生成并返回CSV文件的API:
def getCSV():
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename=export.csv'
writer = csv.writer(response, csv.excel)
# ... Write some CSV content ...
return response
当我从浏览器调用它时,这工作正常,但我无法弄清楚如何编写调用API的测试并检查CSV内容是否应该是什么。
如果我:
c = Client()
r = c.get('/my/export/api')
print(r.content)
这只是打印三个字节,很可能在概念上完全错误。
如何在测试中获取CSV文件响应的内容?
import csv
import io
def test_csv_export(self):
response = self.client.get('/my/export/api')
self.assertEqual(response.status_code, 200)
content = response.content.decode('utf-8')
cvs_reader = csv.reader(io.StringIO(content))
body = list(cvs_reader)
headers = body.pop(0)
print(body)
print(headers)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.