Djangoの単体テストでセッションを利用する方法

Djangoが用意しているtest clientでセッションを使うには、同じ'django.test.client.Client'インスタンスを使ってリクエストを送ればできます。そうすれば、(サーバサイドがクッキーを返す場合)自動的にセッションは保持されます。逆に、新規セッションを始めるためには、'django.test.client.Client'のインスタンスを生成し直す必要があります。

例)

--- views.py ---

def index(request):
    count = request.session.get(‘count')
    if not count:
        count = 0 
    count += 1
    request.session[‘count'] = count
    logging.info(‘COUNT: %s' % count) 
    return shortcuts.render_to_response(‘index.html', {})
--- test_views.py ---

def test_sample1(self):
    c = client.Client()
    utils.setup_test_environment()
    response = c.get(‘/')
    response = c.get(‘/')
def test_sample1(self):
    c = client.Client()
    utils.setup_test_environment()
    response = c.get(‘/')
    c = client.Client()
    response = c.get(‘/')

結果)

--- test_sample1 ---
COUNT: 1
COUNT: 2
COUNT: 1
COUNT: 1

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