模拟ReadTheDocs

时间:2015-09-15 06:43:49

标签: python mocking read-the-docs

我试图用ReadTheDocs记录Python项目。最初,构建过程会在它到达时死亡:

from osgeo import gdal, osr

我已经阅读了rtd faq并使用了模拟功能来解决那些给我带来麻烦的osgeo模块。现在,构建过程使它通过导入但是窒息:

from osgeo.gdalconst import * 

这个相当无益的错误:

RuntimeError: sys.path must be a list of directory names

我对使用mock非常陌生,但我认为问题是osgeo是一个模拟模块,因此没有子模块gdalconst。我该如何解决这个问题?有没有办法模拟子模块呢?

1 个答案:

答案 0 :(得分:6)

有点晚了......但我遇到了这个寻找解决方案(使用嵌套模块mock)。我像这样模拟了模块和子模块:

MOCK_MODULES = ['dbs', 'dbs.apis', 'dbs.apis.dbsClient']
sys.modules.update((mod_name, Mock()) for mod_name in MOCK_MODULES)

订单很重要。希望这有助于其他任何想要解决此问题的人。