有谁知道如何使用WebTest测试图片上传。我目前的代码是:
form['avatar'] =('avatar', os.path.join(settings.PROJECT_PATH, 'static', 'img', 'avatar.png'))
res = form.submit()
在回复中,我收到以下错误“上传有效图片。您上传的文件不是图片或图片已损坏。”。
任何帮助将不胜感激。
答案 0 :(得分:6)
权力是对的。不幸的是(或者没有)我花了半个小时调试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())
太糟糕了,没有像样的例子,但我希望这也能帮助其他人)
答案 1 :(得分:2)
现在选择的答案对我没有帮助。
但是我找到了在.submit()方法中提供预期文件的方法args
form.submit(upload_files=[('avatar', '/../file_path.png'))
答案 2 :(得分:0)
使用Python 3:
form["avatar"] = ("avatar.png", open(os.path.join(settings.PROJECT_PATH, '....', 'avatar.png', "rb").read())