2012-12-04 14 views
5

Có ai biết cách tôi có thể kiểm tra tải lên hình ảnh bằng cách sử dụng WebTest hay không. Mã hiện tại của tôi là:Thử nghiệm Tải lên hình ảnh với Django và Webtest

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

Trong phản hồi tôi nhận được lỗi sau "Tải lên hình ảnh hợp lệ. Tệp bạn đã tải lên không phải là hình ảnh hoặc hình ảnh bị hỏng".

Mọi trợ giúp sẽ được đánh giá cao.

+0

Tôi đoán bạn phải vượt qua đối tượng tập tin của. – power

+0

Không, nếu đối tượng tệp được chuyển trả về webtest "ValueError: Nội dung tệp phải là không " –

+2

Điều gì sẽ xảy ra nếu bạn vượt qua image_file.read()? – power

Trả lời

6

Quyền lực đã đúng. Thật không may (hoặc không) Tôi tìm thấy câu trả lời của mình sau khi tôi dành nửa giờ gỡ lỗi webtest. Đây là một chút thông tin.

Đang cố gắng để vượt qua chỉ đường dẫn đến file mang đến cho bạn ngoại lệ sau đây:

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: ...

Vấn đề là đang không nói với bạn rằng nó tự động sẽ nối tên trường để send tuple và làm 3 mục tuple vào 4 mục một. Các giải pháp cuối cùng là:

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

Quá xấu mà không có ví dụ đàng hoàng nhưng tôi hy vọng điều này sẽ giúp bất cứ ai khác quá)

1

chọn Ngày nay câu trả lời không giúp tôi.

Nhưng tôi tìm thấy cách để cung cấp các file dự kiến ​​trong phương pháp .submit() args

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