我想使用webtest为我的 Pyramid 网络应用程序编写文档测试模块。我尝试过这样的:
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
?我还没有完全理解 Pyramid 启动过程中如何/何时加载ini文件,因此很难弄清楚在测试时加载它的位置。
最佳答案
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'))
关于python - 为 Pyramid Web 应用程序编写文档测试,该应用程序取决于 ini 文件中的设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16750753/