我目前正在使用
python_flickr_api为我的应用上传照片:它使用httplib来执行多部分POST请求.
问题:我想通过拦截POST请求并创建预先成功的响应来验证上传是否真的是在集成测试中发出,这样我的测试就可以完全脱机运行而不依赖于Flickr(我不想上传相同的测试图像100次,或者!)
为此,我尝试使用两个令人难以置信的库:VCRPy和HTTPretty.它们都没有解决我的问题,因为它们都不支持httplib(HTTPretty最接近,只支持httplib2),我得到的错误看起来像这个:
Failure/Error: [Errno 32] broken pipe Traceback: ... File "/usr/local/lib/python2.7/site-packages/flickr_api/upload.py",line 92,in upload r = post(UPLOAD_URL,auth.AUTH_HANDLER,args,photo_file) File "/usr/local/lib/python2.7/site-packages/flickr_api/upload.py",line 52,in post r = multipart.posturl(url,fields,files) File "/usr/local/lib/python2.7/site-packages/flickr_api/multipart.py",line 19,in posturl return post_multipart(urlparts[1],urlparts[2],line 33,in post_multipart h.send(body) File "/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py",line 805,in send self.sock.sendall(data) File "/usr/local/lib/python2.7/site-packages/httpretty/core.py",line 243,in sendall return self._true_sendall(data) File "/usr/local/lib/python2.7/site-packages/httpretty/core.py",line 216,in _true_sendall self.truesock.sendall(data,*args,**kw) File "/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py",line 224,in meth return getattr(self._sock,name)(*args)
很明显,httpretty正在拦截但导致管道损坏.
我怎样才能解决这个问题?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。