python - 为 Pyramid Web 应用程序编写文档测试,该应用程序取决于 ini 文件中的设置

标签 python pyramid wsgi webtest

我想使用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/

相关文章:

python - 我正在尝试使用 beautfiul soup 抓取多个页面,但代码不断为每个页面返回相同的数据

python - 从 N 个元组中获取所有值

python - 使用pandas将txt文件转换为dataframe

python - 如何在 Pyramid (线程)中使用python和windows com?

django - 将 Haystack 2.0.0 与 Django 1.5 和 Gunicorn WSGI 一起使用时出现 ImportError

python - 将生成器包装到缓冲区中?

python - 使用 SUDS 消费 RPClib 服务时可能存在消息大小限制吗?

python - Pandas to_sql 右截断错误

python - 是否应该在每个响应中设置 cookie header ?

master-pages - Pyramid 框架和母版模板/母版页/局部 View