首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有和不带包依赖项的测试

有和不带包依赖项的测试
EN

Stack Overflow用户
提问于 2018-07-05 21:22:10
回答 1查看 49关注 0票数 1

我希望我的包在使用和不使用rapidjson时都可以使用,所以我有以下代码:

代码语言:javascript
复制
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=(',',':'))

我的问题是:如何在没有的情况下测试这个文件?

我不想像这样手工做

代码语言:javascript
复制
$ 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-rapidjson

PS。实际上,我不确定这是否值得付出努力,所以我会接受这样一个答案,即强制要求我将python-rapidjson添加到requirements.txt中,然后忘记所有的事情。;-)

EN

回答 1

Stack Overflow用户

发布于 2018-07-05 21:30:23

使用模拟库,您可以通过修补sys.modules代码块来模拟rapidjson没有安装在特定的测试中。

代码语言:javascript
复制
def test_with_import_error(self):
    with mock.patch.dict('sys.modules', {'rapidjson': None}):
       #test code with ImportError here
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51200093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档