テストユーティリティ—Werkzeugのドキュメント
テストユーティリティ
アプリケーションを単体テストしたり、インタラクティブなPythonセッションからの出力を確認したりすることがよくあります。 理論的には、WSGI環境を偽造し、ダミーの start_response を使用してアプリケーションを呼び出し、アプリケーションイテレーターを反復処理できるため、これは非常に単純ですが、アプリケーションと対話するためのより良い方法があります。
飛び込み
Werkzeugは、仮想リクエストをアプリケーションに送信するために使用できるWSGIアプリケーション(およびオプションで応答ラッパー)を渡すことができる Client オブジェクトを提供します。
応答ラッパーは、アプリケーションイテレーター、ステータス、最後にヘッダーのリストの3つの引数を取る呼び出し可能オブジェクトです。 デフォルトの応答ラッパーはタプルを返します。 応答オブジェクトは同じシグネチャを持っているため、理想的にはそれらをサブクラス化してテスト機能をフックすることにより、応答ラッパーとして使用できます。
または、ラッパーが定義されていない場合:
エンバイロメントビルディング
バージョン0.5の新機能。
アプリケーションをインタラクティブにテストする最も簡単な方法は、EnvironBuilder
を使用することです。 標準のWSGI環境とリクエストオブジェクトの両方を作成できます。
次の例では、アップロードされた1つのファイルとフォームフィールドを使用してWSGI環境を作成します。
結果として得られる環境は、さらなる処理に使用できる通常のWSGI環境です。
EnvironBuilder
は、コンストラクターにdictを data として渡すと、コンテンツタイプを自動的に判断します。 文字列または入力ストリームを提供する場合は、自分で行う必要があります。
デフォルトでは、application/x-www-form-urlencoded
を使用しようとし、ファイルがアップロードされている場合にのみmultipart/form-data
を使用します。
文字列がデータ(または入力ストリーム)として提供される場合は、コンテンツタイプを自分で指定する必要があります。
テストAPI