Django オンラインドキュメント和訳 更新しました。 Revision 5174 (2007/05/09)
以下、 diff -r 5155:5174 の主な変更分です。
http://michilu.com/django/doc-ja/contributing/#id15
テストには設定モジュールが必要なだけでなく,データベース設定の情 報,つまり DATABASE_NAME (指定はせねばなりませんが,内容は無視されます) DATABASE_ENGINE, DATABASE_USER および DATABASE_PASSWORD も必要 です.
http://michilu.com/django/doc-ja/model-api/#blank
True にすると,フィールドの値を空白 (blank) にできます. デフォルト値は True です.
http://michilu.com/django/doc-ja/serialization/#id4
json_serializer = serializers.get_serializer("json")()
json_serializer.serialize(queryset, ensure_ascii=False, stream=response)
※ get_serializer() の返り値を関数呼び出しするように更新されています
http://michilu.com/django/doc-ja/testing/#id23
- assertFormError(response, form, field, errors)
form に指定したフォーム上のフィールド field で, errors に 指定したエラーリストと同じエラーが送出されるかどうか調べるアサーション です.
form はテンプレートコンテキスト内でのフォームオブジェクトの名前です.
field はフォーム内のフィールドの名前です. field の値が None であれば,そのフィールドのエラーはチェックされません.
errors はエラー文字列か,エラー文字列のリストです.フォームの検証結 果として返されるのと同じ形式です.
- assertTemplateNotUsed(response, template_name)
- template_name に指定したテンプレートがレスポンスのレンダリングに使 われて いない かどうか調べるアサーションです.
- assertTemplateUsed(response, template_name)
- template_name に指定したテンプレートがレスポンスのレンダリングに使 われているか調べるアサーションです.
http://michilu.com/django/doc-ja/testing/#id24
テスト用データベースは, DATABASE_USER 設定に指定したユーザの権限で作成 されます.従って,そのユーザは新たなデータベースを作成するのに必要な権限を 持っていなければなりません.
http://michilu.com/django/doc-ja/testing/#id13
get() および post() メソッドは,いずれも Response オブジェクトを返 します. Response オブジェクトには以下のようなプロパティがあり,テストに利 用できます
※ login() メソッドの記述が削除されています
http://michilu.com/django/doc-ja/testing/#id24
Djangoは,各テストケースの開始時に,フィクスチャのインストールに加え,メールの送信箱に入っている内容を抹消します. テスト中のメールサービスの詳細は メールサービス を参照してください.
http://michilu.com/django/doc-ja/testing/#id26
ビューが Django のメールサービス を使っている場合,ビューをテストするた びにメールが送信されてほしくはないでしょう.
Django は,テストフレームワークを初期化する際,通常の SMTPConnection ク ラスをダミーの SMTPConnection 実装に切替えます.このダミーは,全てのメール をダミーの送信箱に転送します.送信箱は djnago.core.mail.outbox で参照で き,実体はその時点で送信された全ての EmailMessage インスタンスからなるリ ストです.この仕組みによって,テスト条件として,以下のようなコードを実行で きるようになります
from django.core import mail
# Send message
mail.send_mail('Subject here', 'Here is the message.', 'from@example.com',
['to@example.com'], fail_silently=False)
# One message has been sent
self.assertEqual(len(mail.outbox), 1)
# Subject of first message is correct
self.assertEqual(mail.outbox[0].subject, 'Subject here')
:
mail.outbox オブジェクトは,通常の実行条件下では存在しません.この送信 箱はテスト設定のときに,ダミーの SMTPConnection と共に作成されます. テストフレームワークが実行を終了すると,通常の SMTPConnection クラスが復 元され,送信箱は消去されます.
前節で 述べたように,テスト用の送信箱の内容は TestCase 内の各テストケー スの開始時点で抹消されます.手動で送信箱の内容を空にしたければ,空のリスト を mail.outbox に代入します
from django.core import mail
# Empty the test outbox
mail.outbox = []
http://michilu.com/django/doc-ja/testing/#id32
- setup_test_environment()
- テンプレートレンダリングシステム構成のインストールなど,テスト前の全 体的な準備を行い, ダミーの SMTP 接続をセットアップします.
- teardown_test_environment()
- テンプレートレンダリングシステム構成の除去など,テスト後の全体的な後始 末を行い, メールサービスを通常の状態に復帰します.
http://michilu.com/django/doc-ja/templates_python/#id7
TEMPLATE_STRING_IF_INVALID にフォーマット指示文字の '%s' が入ってい る場合, '%s' は不正な変数の変数名で置き換えられます.
