将**设置信息从鼻子传递到unittest

时间:2011-10-23 04:06:15

标签: python pyramid

我正在使用鼻子进行单元测试。

我有.ini文件,例如production.ini,development.ini,local.ini。最后,我有一个test.ini文件,如下所示:

[app:main]
use = config:local.ini

# Add additional test specific configuration options as necessary.
sqlalchemy.url = sqlite:///%(here)s/tests.db

在我的测试类中,我想像在app服务器代码中那样设置数据库。类似的东西:

engine = engine_from_config(settings)
initialize_sql(engine)

dbfixture = SQLAlchemyFixture(
    env=model,
    engine=engine,
    style=NamedDataStyle()
)

鼻子如何将'设置'传递给我的测试代码?

我一直在阅读以下链接以获取一些指导,但我无法连接所有的点。 http://farmdev.com/projects/fixture/using-fixture-with-pylons.html

非常感谢!

1 个答案:

答案 0 :(得分:7)

您需要自己解析INI文件中的设置。 Pylons曾经通过硬编码“test.ini”的负载自动为您完成此操作。你有两个选项:1)只需通过settings = paste.deploy.appconfig('test.ini')加载INI设置或2)自己加载实际的WSGI应用程序,就像你想通过WebTest app = pyramid.paster.get_app('test.ini')使用它来解析INI文件和返回一个实际的WSGI应用程序。不幸的是,该路由不允许您直接访问INI文件,它会自动将设置传递给您应用的启动函数main(global_conf, **settings)

您可能还会发现Pyramid docs功能测试很有用。