我想使用webtest模块为我的金字塔网络应用编写doctests。我试过这样的话:
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
的值在我的应用程序的paster ini文件中指定。在运行我的测试代码时,有一种简单的方法可以使用我的development.ini
吗?我还没有完全理解在金字塔启动期间如何/何时加载ini文件,因此在测试时很难确定加载它的位置。
答案 0 :(得分:3)
main
。从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'))