单元测试将图像上传到s3的Django视图

2024-04-26 01:21:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了一个简单的单元测试来测试django视图。视图上传图像文件,该文件与请求对象一起传递到S3。你知道吗

代码:

        url = 'view-endpoint-url'
        myfile = open('pathtoimage')
        payload = {'data1': 'xyz', 'file': myfile}
        response = client.post(url, payload, MULTIPART_CONTENT)

此时调用被测视图时:图像文件按预期存储在中request.FILE文件InMemoryUploadedFile类型的['file']。你知道吗

当视图试图打开时(request.FILE文件['file'])和read()我得到一个

 IOError no such file or directory

我很困惑,因为图像文件确实存在于该位置中,但由于某些原因它没有被提取。我用curl命令做了类似的测试,一切正常。你知道吗

有什么方法可以帮助我进行单元测试吗?你知道吗

更新:

基本上,我试图获取InMemoryUploadedFile的文件路径来对视图进行单元测试

解决方案

通过在测试的同一视图中读取文件,而不是使用另一个实用方法读取InMemoryUploadedFile,修复了此问题。你知道吗

由于某些原因,当在不同的文件夹中使用实用程序方法读取InMemoryUploadedFile时,它会失去文件路径的跟踪。你知道吗


Tags: 文件django方法路径视图urlrequest图像文件
1条回答
网友
1楼 · 发布于 2024-04-26 01:21:08

通过在测试的同一视图中读取文件,而不是使用另一个实用方法读取InMemoryUploadedFile,修复了此问题。你知道吗

由于某些原因,当在不同的文件夹中使用实用程序方法读取InMemoryUploadedFile时,它会失去文件路径的跟踪。你知道吗

相关问题 更多 >