Печать данных сессии Django приводит к сбою тестов pytest, почему?

Я создаю приложение Django и пытаюсь написать тест с помощью pytest. У меня возникла странная проблема при тестировании данных, хранящихся в сессии.

У меня стандартный вид.

def dev_my_view(request):
    if request.method == "POST":
        post_data = json.loads(request.body.decode("utf-8"))
        product_id = post_data["productid"]
        request.session["basket"] = {"id": product_id}
        response = JsonResponse({"id": f"product number {product_id}"})
        return response

<
    # TEST PASSES OK
    def test_my_view_OK(self):
        the_session = self.get_session()
        self.set_session_cookies(the_session)
        url = reverse("home_page:my_view")
        response = self.client.post(
            url,
            json.dumps({"productid": "99"}),
            content_type="application/json",
        )
        self.assertEqual(response.status_code, 200)
        self.assertJSONEqual(response.content, {"id": "product number 99"})
        self.assertEqual(
            the_session["basket"],
            {"id": "99"},
        )
        self.assertNotEqual(
            the_session["basket"],
            {"id": "Invalid value"},
        )

Но этот тест не работает...

    # TEST KO
    def test_my_view_KO(self):
        the_session = self.get_session()
        self.set_session_cookies(the_session)
        print_session_in_tests(the_session)
        # Session is empty, ok

        url = reverse("home_page:my_view")
        response = self.client.post(
            url,
            json.dumps({"productid": "99"}),
            content_type="application/json",
        )
        print_session_in_tests(the_session)
        # Session is empty, why ?

        self.assertEqual(response.status_code, 200)
        self.assertJSONEqual(response.content, {"id": "product number 99"})
        # The following test fails. KeyError: 'basket'
        self.assertEqual(
            the_session["basket"],
            {"id": "99"},
        )
        self.assertNotEqual(
            the_session["basket"],
            {"id": "Invalid value"},
        )

Итак, похоже, что за это отвечает функция print_session_in_tests ... Почему

def print_session_in_tests(my_session):
    print("----------// SESSION (test) //----------")
    try:
        for key, value in my_session.items():
            print("{} >>> {}".format(key, value))
    except:
        pass
    print("------- end of printing session ------")
    pass

Для информации, мои тесты являются подклассом TestCase.

class SessionEnabledTestViews(TestCase):
    def get_session(self):
        if self.client.session:
            session = self.client.session
        else:
            engine = import_module(django_settings.SESSION_ENGINE)
            session = engine.SessionStore()
        return session

    def set_session_cookies(self, session):
        # Set the cookie to represent the session
        session_cookie = django_settings.SESSION_COOKIE_NAME
        self.client.cookies[session_cookie] = session.session_key
        cookie_data = {
            "max-age": None,
            "path": "/",
            "domain": django_settings.SESSION_COOKIE_DOMAIN,
            "secure": django_settings.SESSION_COOKIE_SECURE or None,
            "expires": None,
        }
        self.client.cookies[session_cookie].update(cookie_data)

    # * TEST KO
    def test_my_view_KO(self):
       # ...

    # * TEST OK
    def test_my_view_OK(self):
       # ...

Вернуться на верх