我有一个返回文件的Django视图。 FileResponse
是为此目的而构建的。但是,我不知道该如何测试。
现在我使用HttpResponse
并进行如下测试:
response = client.get(url)
io = io = BytesIO(response.content)
io
对象现在可以用于进一步的测试。
但是,如果我尝试使用FileResponse
(它是从StreamingHttpResponse
派生的,因此使用streaming_content
而不是content
进行以下操作,则会出现以下异常:< / p>
TypeError: a bytes-like object is required, not 'map'
如果我像这样将map
对象投射到bytes
:
response = client.get(url)
io = io = BytesIO(bytes(response.streaming_content))
我得到另一个例外:TypeError: 'bytes' object cannot be interpreted as an integer
如何从BytesIO
获取FileResponse.streaming_content
对象?
答案 0 :(得分:0)
streaming_content是可迭代的,而不是字节串,因此您必须将它们加入。
fileres = bytes("test", 'utf-8')
stream = b''.join(response.streaming_content)
assert stream == fileres