Невозможно проверить параметры сеанса в тесте Django - PullRequest
0 голосов
/ 21 июня 2019

У меня есть домашний шаблон, который показывает message, если он указан:

base.html

<main role="main">
    <div class="container">
        {% if message %}
            <br>
            <span class="text-success">{{ message }}</span>
            <br><br>
        {% endif %}

        {% block content %}
        {% endblock %}
    </div>
</main>

home.html

{% extends 'base.html' %}
{% block content %}


<span>Hello</span>


{% endblock %}

views.py

def home(request):
    params = {}
    if 'message' in request.session and request.session['message']:
        params['message'] = request.session['message']
        del request.session['message']
    return render(request, 'products/home.html', params)

И проверьте этот код, который я не могу заставить работать:

class HomeTests(TestCase):
    def test_home_shows_message_if_session_param_is_provided(self):
        self.client.session['message'] = 'test'
        self.client.session.save()
        response = self.client.get(reverse('home'))
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed(response, 'products/home.html')
        self.assertContains(response, 'test')

Я получил этоошибка

AssertionError: False не соответствует действительности: не удалось найти 'test' в ответе.

Это потому, что request.session не содержит message param, поэтому я установил его неправильно.Пожалуйста, помогите мне найти правильный.Я уверен, что мой код работает, но как правильно его проверить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...