Nếu url có nghĩa là tạo một tệp thay vì phản hồi http "bình thường", thì content-type
và/hoặc content-disposition
của nó sẽ khác nhau.
đối tượng phản ứng về cơ bản là một cuốn từ điển, vì vậy bạn có thể để một cái gì đó giống như
self.assertEquals(
response.get('Content-Disposition'),
"attachment; filename=mypic.jpg"
)
biết thêm: https://docs.djangoproject.com/en/dev/ref/request-response/#telling-the-browser-to-treat-the-response-as-a-file-attachment
UPD: Nếu bạn muốn đọc các nội dung thực tế của các tập tin đính kèm, bạn có thể sử dụng response.content. Ví dụ về tệp zip:
try:
f = io.BytesIO(response.content)
zipped_file = zipfile.ZipFile(f, 'r')
self.assertIsNone(zipped_file.testzip())
self.assertIn('my_file.txt', zipped_file.namelist())
finally:
zipped_file.close()
f.close()
có nhưng bạn không kiểm soát tệp đã tải xuống ... – francois
bạn có muốn kiểm tra nội dung thực của tệp không? bạn có thể sử dụng 'response.content' - https://docs.djangoproject.com/en/dev/ref/request-response/#id4 – hwjp
Tôi đang cố gắng để làm điều này chính xác nhưng nhận được lỗi "ValueError: Tôi/O hoạt động trong hồ sơ khép kín" bất cứ khi nào tôi làm bất cứ điều gì với response.content, thậm chí đi qua nó để StringIO. –