我希望我的包在使用和不使用rapidjson时都可以使用,所以我有以下代码:
try:
import rapidjson as json # https://github.com/python-rapidjson/python-rapidjson
def pp_json(x, fd):
"Pretty-print object to stream as JSON."
return json.dump(x, fd, sort_keys=True, indent=1)
except ImportError:
import json # https://docs.python.org/3/library/json.html
def pp_json(x, fd):
"Pretty-print object to stream as JSON."
return json.dump(x,fd,sort_keys=True,indent=1,separators=(',',':'))我的问题是:如何在没有和的情况下测试这个文件?
我不想像这样手工做
$ coverage3 run --source=pyapp -m unittest discover --pattern *_test.py
$ pip3 uninstall python-rapidjson
$ coverage3 run --source=pyapp -m unittest discover --pattern *_test.py
$ pip3 install python-rapidjsonPS。实际上,我不确定这是否值得付出努力,所以我会接受这样一个答案,即强制要求我将python-rapidjson添加到requirements.txt中,然后忘记所有的事情。;-)
发布于 2018-07-05 21:30:23
使用模拟库,您可以通过修补sys.modules代码块来模拟rapidjson没有安装在特定的测试中。
def test_with_import_error(self):
with mock.patch.dict('sys.modules', {'rapidjson': None}):
#test code with ImportError herehttps://stackoverflow.com/questions/51200093
复制相似问题