2012-12-04 29 views
5

有誰知道如何使用WebTest測試圖片上傳。我當前的代碼是:使用Django和Webtest測試圖片上傳

form['avatar'] =('avatar', os.path.join(settings.PROJECT_PATH, 'static', 'img', 'avatar.png')) 
res = form.submit() 

在我收到以下錯誤的響應「上傳有效的圖片您上傳的文件是不是沒有圖像或損壞的形象。」

任何幫助將不勝感激。

+0

我想你應該通過文件的預期目標文件的方式。 – power

+0

不,如果傳遞文件對象,webtest將返回「ValueError:文件內容必須是而不是」 –

+2

如果傳遞image_file.read()會發生什麼? – power

回答

6

權力是對的。不幸的是(或沒有)我花了半個小時調試webtest後發現了他的答案。這裏有更多的信息。

試圖只有路徑傳遞給文件,爲您帶來以下異常:

webtest/app.py", line 1028, in _get_file_info

ValueError: upload_files need to be a list of tuples of (fieldname, filename, filecontent) or (fieldname, filename); you gave: ...

的問題是不會告訴你,它會自動將字段名追加到元組發送和製作3項元組變成4項第1項。最終的解決方案是:

avatar = ('avatar', 
      file(os.path.join(settings.PROJECT_PATH, '....', 'avatar.png')).read()) 

太糟糕了,沒有像樣的例子,但我希望這將幫助其他人也是如此)

1

目前選擇的答案並沒有幫助我。

但我發現提供的.submit()方法ARGS

form.submit(upload_files=[('avatar', '/../file_path.png'))