【问题标题】:Django Testing - SimpleCookie and SessionDjango 测试 - SimpleCookie 和 Session
【发布时间】:2020-02-25 14:54:46
【问题描述】:

问题:一旦我尝试设置 cookie,我的测试客户端似乎就退出了。我有希望我的客户访问的工作区(项目)对象。访问本身工作正常,但是一旦我尝试在会话中编辑 cookie,客户端就会被注销。我的测试记录在下面。

代码

import time
from http.cookies import SimpleCookie

from django.contrib.auth.models import User
from django.test import Client, TestCase
from django.urls import reverse
from myproject.models import DataSource, Workspace


class TestSomeStuff(TestCase):

    def setUp(self):
        datasource1, _ = DataSource.objects.update_or_create(id=1, defaults=dict(source_name="Source 1"))

        workspace1, _ = Workspace.objects.get_or_create(id=1, defaults=dict(project_name="Project 1",
                                                                            datasource=datasource1))
        self.workspace_view_url = reverse("workspace", args=[workspace1.id])
        self.client = Client()
        print(self.client.get(self.workspace_view_url))  # 302 - redirect to login page as expected
        self.client.force_login(User.objects.get_or_create(username='testuser')[0])
        print(self.client.get(self.workspace_view_url))  # 200 - as expected
        time.sleep(2)
        print(self.client.get(self.workspace_view_url))  # 200 - as expected
        time.sleep(2)
        self.client.cookies = SimpleCookie()
        print(self.client.get(self.workspace_view_url))  # 302 - why?

    def test_my_test(self):
        pass

【问题讨论】:

    标签: django django-testing


    【解决方案1】:

    self.client.cookies = SimpleCookie() 行会擦除所有 cookie - 包括“sessionid”和“csrftoken”。我改成self.client.cookies["cookie_key"] = "cookie_value"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-25
      • 2016-08-05
      • 1970-01-01
      • 1970-01-01
      • 2013-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多