Django UnitTest - 设置会话变量

use*_*968 7 django django-testing django-tests

我有一个基于 django_webtest.WebTest 的 Django 单元测试类,我找不到在测试期间设置会话变量的正确方法。我已经尝试了以下,但我不工作

from django_webtest import WebTest
class TestMyTests(WebTest):
    def test_my_tesst(self):
       ... 
       self.app.session['var1'] = 'val1'
       ...
Run Code Online (Sandbox Code Playgroud)

tre*_*zko 9

这通常是Client的用途。它可以访问会话数据。我不能说django_webtest,因为这是 django 的外部库,但在内部用于单元测试,您可以像这样访问和设置会话数据:

import unittest
from django.test import Client

class TestMyTests(unittest.TestCase):

    def setUp(self):
        self.client = Client()

    def test_my_test(self):
        ...
        session = self.client.session
        session['somekey'] = 'test'
        session.save()
        ...
Run Code Online (Sandbox Code Playgroud)

上面的例子是从关于测试工具的Django 文档中收集的。