Djangoの単体テストでクッキーを使用する方法

django.test.client.Clientクラスはget()とpost()メソッドが定義されています。これらメソッドは引数にextraというのがあり、ここにキーHTTP_COOKIEでクッキーを指定することで、Djangoの単体テストでクッキーを使用することができるようになります。

Djangoの単体テストでクッキーを使用する例:

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

class TestCookie(unittest.TestCase):

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

    def test1(self):
        cookie = Cookie.BaseCookie()
        name = ‘hoge'
        value = ‘fuga'
        cookie[name] = value
        cookie[name][‘path'] = ‘/' 
        cookie[name][‘domain'] = ‘localhost'
        header_info = {‘HTTP_COOKIE': cookie.output(header=", sep=")}
        response = self._client.get(‘/', **header_info)

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