GAEUnitとDjangoのThe test clientを併用する

GAEUnitとDjangoのThe test clientの併用を試してみたら、特に問題なくテストができたのでメモをしておきます。なお、下記例では、レスポンスコードとテンプレート名、コンテキストに設定されたメッセージが正しいかどうかをチェックしています。

例)

--- views.py ---

from django import shortcuts

def index(request):
    msg = u'The client test with GAEUnit.'
    return shortcuts.render_to_response(‘index.html', dict(msg=msg)

これに対するテストは以下のように書きます。

--- test/test_views.py ---

import os
import unittest
os.environ[u'DJANGO_SETTINGS_MODULE'] = u'settings'
from django.test import client
from django.test import utils


class SimpleTest(unittest.TestCase):

    def setUp(self):
        self._c = client.Client()
        utils.setup_test_environment()

    def test_sample1(self):
        response = self._c.get(‘/')
        context = response.context
        self.assertEqual(200, response.status_code)
        self.assertEqual(‘index.html', response.template.name)
        self.assertEqual(u'The client test with GAEUnit.', context[‘msg'])

この状態で、http://<ホスト名>/testを叩くと、無事にテストが成功しました。これでview関連のテストも実行しやすくなりました。

この記事が役に立った場合、シェアしていただけると励みになります!!