CherryPy仅在测试时公开函数

时间:2017-05-24 12:40:33

标签: python web web-applications cherrypy

我正在构建我的第一个CherryPy应用程序,并希望测试一个不应公开可见的方法(未公开)我可以完全测试该方法,如果它暴露但是我想知道是否有一种方法来切换暴露方法取决于调用该函数的文件。例如,如果从mainApp调用函数,如果从mainApp调用它,它将不会被暴露但是如果从测试文件中调用它会被暴露?

the code I was thinking of is along the lines of

if __name__ != '__main__': @cherrypy.expose
def supersecretmethod(self)

然而,我可以看到这不起作用并做了一些研究,但似乎无法弄清楚如何做到这一点,任何建议?感谢

1 个答案:

答案 0 :(得分:2)

您可以为此目的使用自定义装饰器:

def expose_if_not_main(func):
    if __name__ != '__main__':
        return cherrypy.expose(func)
    else:
        return func


@expose_if_not_main
def supersecretmethod(self):
    return 'result'