有谁知道我如何使用 WebTest 测试图像上传。我目前的代码是:
form['avatar'] =('avatar', os.path.join(settings.PROJECT_PATH, 'static', 'img', 'avatar.png'))
res = form.submit()
在响应中,我收到以下错误“上传有效图像。您上传的文件不是图像或损坏的图像。”。
任何帮助将不胜感激。
有谁知道我如何使用 WebTest 测试图像上传。我目前的代码是:
form['avatar'] =('avatar', os.path.join(settings.PROJECT_PATH, 'static', 'img', 'avatar.png'))
res = form.submit()
在响应中,我收到以下错误“上传有效图像。您上传的文件不是图像或损坏的图像。”。
任何帮助将不胜感激。
权力是对的。不幸的是(或没有)我花了半个小时调试 webtest 后找到了他的答案。这是更多信息。
尝试仅传递文件的路径会给您带来以下异常:
webtest/app.py",第 1028 行,在 _get_file_info
ValueError:upload_files 需要是 (fieldname, filename, filecontent) 或 (fieldname, filename) 的元组列表;你给了: ...
问题是它没有告诉你它会自动将字段名称附加到元组发送并将 3 项元组变成 4 项元组。最终的解决方案是:
avatar = ('avatar',
file(os.path.join(settings.PROJECT_PATH, '....', 'avatar.png')).read())
太糟糕了,没有像样的例子,但我希望这对其他人也有帮助)
如今选择的答案对我没有帮助。
但我找到了在 .submit() 方法 args 中提供预期文件的方法
form.submit(upload_files=[('avatar', '/../file_path.png')])
使用 Python 3:
form["avatar"] = ("avatar.png", open(os.path.join(settings.PROJECT_PATH, '....', 'avatar.png', "rb").read())