Djangoでテスト(POST,ログイン)

今回は、ログインとPOSTのテスト
Django オンラインドキュメント和訳
Djangoアプリケーションのテスト


Djangoには、テストクライアントというWebアプリケーションをテストする
便利なツールが用意されています。
テストクライアントを利用すると、簡単にリクエストの生成、ログインの確認、レスポンスの確認をすることができます。


テストクライアントの生成からレスポンスの確認まで

>>> from django.test.client import Client
>>> c = Client()
>>> response = c.get('/test/')
>>> response.status_code
200


ログインユーザーのみ参照できるページの確認
login()は、開発版のDjango(0.97-pre)のみ

(* Djangoアプリケーションのテストより抜粋)
このメソッドを呼び出すと、テストクライアントはログインに必要なクッキーとセッションデータを持つようになり、テスト対象のビューのうち、ログインの必要なテストをパスできるようになります。

>>> from django.test.client import Client
>>> c = Client()
>>> response = c.get('/login_required/')
>>> response.status_code
302
>>> c.login(username='kuma8', password='kuma8')
True
>>> response = c.get('/login_required/')
>>> response.status_code
200


POSTリクエストの生成からログアウト

>>> response = c.post('/send/', { 'contents': 'test data' })
>>> response.status_code
302
>>> c.logout()


このほかにも、便利な機能がまだまだあります。
より詳しく確認するには、Djangoアプリケーションのテストを参考にしましょう。:-)