我正在使用Django Unit测试来尝试测试文件下载。它作为一个API调用,带有一个必需的令牌作为GET参数,但没什么特别的。代码是:
from django.test.client import Client
c = Client()
base_url = str(sample_download_resource_uri) + '?token=' + str(account_token)
response = c.get(base_url)
if response.status_code != 200:
return False, "Status code for /download_attachment/XYZ/ is not 200"
网址类似于:/download_attachment/1/
或/download_attachment/2/
取决于文件ID。
当我尝试运行单元测试时,在行中:
if response.status_code != 200:
我收到错误:I/O exception on closed file.
我在浏览器中尝试调用的URL,它运行正常。
我没有通过tests.py文件和测试命令运行单元测试,而是使用Django视图远程单元测试Web服务器。但这不应该有所作为,因为所有其他非下载单元测试都适用于GET和POST命令。