我有一个基于django_webtest.WebTest的Django单元测试类,我找不到在测试期间设置会话变量的正确方法。我尝试了以下,但我不工作
from django_webtest import WebTest
class TestMyTests(WebTest):
def test_my_tesst(self):
...
self.app.session['var1'] = 'val1'
...
答案 0 :(得分:3)
这通常是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()
...
以上示例是从Django Documentation测试工具中收集的。
答案 1 :(得分:0)
如果您使用的是pytest
,则可以执行以下操作:
import pytest
from django.test import Client
@pytest.mark.django_db # this is used if you are using the database
def test_my_tesst():
# code before setting session
c = Client()
session = c.session
session['var1'] = 'val1'
session.save()
# code after setting session
最重要的是在更改会话后保存会话。否则,它将无效。