【发布时间】:2014-09-24 23:36:39
【问题描述】:
我正在使用 Flask 构建一个(连接到 Facebook 的)网络服务器。这是一个示例路线
@app.route('/login', methods=['GET'])
def login():
graph = facebook.GraphAPI(request.args.get('access_token'))
profile = graph.get_object('me')
return jsonify(profile)
这很好用,但是当我进行本地开发时不断访问 Facebook 服务器似乎是一种不好的做法。
将 facebook API 重新路由到模拟甚至模拟服务器的最有效方法是什么?在内部,facebook-sdk 库使用requests 来访问graph.facebook.com。
我看过这个问题
python mock Requests and the response
尤其是 Dropbox 的 responses 库,但看起来您必须将每个调用包装在它们的装饰器中。它适用于单元测试套件,但我只对针对模拟数据和模拟响应进行开发感兴趣。
更新:作为对 Thomas 的回应,我一直在考虑类似的解决方案。我尝试添加:
if config_name == 'development':
print 'monkey'
import requests
def mock(*args, **kwargs):
print args, kwargs
return {}
requests.request = mock
但这似乎并没有改变 facebook-sdk 库的行为。
【问题讨论】:
标签: python testing mocking python-requests