Django Тестирование - SimpleCook ie и Сессия - PullRequest
0 голосов
/ 25 февраля 2020

Проблема : Мой клиент тестирования выходит из системы, как только я пытаюсь установить повара ie. У меня есть объект рабочей области (проекта), к которому я хочу, чтобы мой клиент получил доступ. Сам доступ работает нормально, но как только я пытаюсь редактировать куки в моем сеансе, клиент выходит из системы. Мой тест описан ниже.

Код

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

1 Ответ

0 голосов
/ 25 февраля 2020

Строка self.client.cookies = SimpleCookie() стирает все куки, включая 'sessionid' и 'csrftoken'. Я изменил его на self.client.cookies["cookie_key"] = "cookie_value"

...