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アプリケーションのテストを参考にしましょう。:-)