我正在尝试通过Sphinx获取在ReadTheDocs安装基础上建立的文档。我要记录的类是从较大的Framework继承的,因此无法轻松安装,因此希望对其进行模拟。但是,在嘲笑我实际上想记录的类时,Mock似乎过于贪婪。有问题的代码如下:
Стихи похожи на людей...
我想确保不会盲目地装饰装饰器,而是在我的Sphinx # imports that need to be mocked
from big.framework import a_class_decorator, ..., SomeBaseClass
@a_class_decorator("foo", "bar")
class ToDocument(SomeBaseClass):
""" Lots of nice documentation here
which will never appear
"""
def a_function_that_is_being_documented():
""" This will show up on RTD
"""
中明确显示。否则,我将遵循RTD关于模拟模块的建议:
conf.py
现在,我希望对于打印输出,我得到一些有关我要记录的类的信息,例如class MyMock(MagicMock):
@classmethod
def a_class_decorator(cls, classid, version):
def real_decorator(theClass):
print(theClass)
return theClass
return real_decorator
@classmethod
def __getattr__(cls, name):
return MagicMock()
sys.modules['big.framework'] = MyMock()
。
但是,我也总是得到该类的Mock <ToDocument ...>
,当然它没有我要构建的任何文档。有什么想法吗?
答案 0 :(得分:0)
原来的问题是从模拟类继承。明确开始介绍基类并创建一个空类
class SomeBaseClass:
pass
在conf.py
中打补丁解决了问题