对于金字塔的Web应用程序编写文档测试依赖于设置在ini文件(Writing doctests fo

2019-10-18 04:43发布

我想编写文档测试我的金字塔的web应用程序,使用WebTest的模块。 我想它是这样的:

from my_webapp import main
from webtest import TestApp

app = TestApp(main({}))
result = app.get('/')

这就提出了一个KeyError (因为some.url不知道)当我的代码到达此行:

url = request.registry.settings['some.url']

some.url在我的应用程序的贴纸ini文件中指定。 有没有用我的一个简单的方法development.ini运行我的测试代码时? 我还不完全明白如何/当ini文件被传销过程中加载启动,所以很难找出哪里加载它,而测试。

Answer 1:

main被调用,您的INI文件的内容。 从一个ini是一种简单的方式来加载你的应用程序:

from pyramid.paster import get_app

app = get_app('testing.ini#main')
test_app = TestApp(app)

这预计“testing.ini”是在当前工作目录,所以你可能需要调整这一点。 如果你想它是相对于树中的一个点,你可以使用:

import os.path
import some_module

here = os.path.dirname(some_module.__file__)
app = get_app(os.path.join(here, 'testing.ini'))


文章来源: Writing doctests for pyramid web app which depend on settings in ini file