Python测试 - 即时交互式模拟建筑?

时间:2014-09-10 08:13:51

标签: python unit-testing

我想出了一个动态交互式模拟建筑的想法。这意味着我要注册一个对象:

session = requests.Session()
mock_building.start(session)

然后当我调用时:

session.get("http://stackoverflow.com")

它会像往常一样向stackoverflow发出请求并保存Response(某处)。

然后我会做出类似的事情:

mock_building.save(session, "stackoverflow_session.dat")  # pickling?

稍后(在下一次执行中)我会这样做:

session = mock_building.load("stackoverflow_session.dat") 

这一次:

session.get("http://stackoverflow.com")  # overloaded __getattr__?

会给我完全相同的响应,但没有请求stackoverflow。

这件事有可能吗?请注意我不想将自己限制在请求模块中,在一般情况下我非常适合开发/测试(例如,当程序在第300行引发异常并且需要花费大量时间时)。或者不是吗?

1 个答案:

答案 0 :(得分:1)

查看requests-cache

您可以将所有请求缓存到例如sqlite db

import requests
import requests_cache

requests_cache.install_cache()

requests.get('http://stackoverflow.com')