1

webtestモジュールを使用して、私のピラミッド Web アプリの doctest を書きたいと思います。私はこのように試しました:

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テスト コードを実行するときにmy を使用する簡単な方法はありますか? ピラミッドの起動時に ini ファイルがどのように/いつロードされるかをまだ完全には理解していないため、テスト中にどこにロードするかを理解するのは困難です。

4

1 に答える 1

3

mainini ファイルの内容で呼び出されます。アプリを 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'))
于 2013-05-25T16:55:45.923 に答える