У меня есть домашний шаблон, который показывает 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, поэтому я установил его неправильно.Пожалуйста, помогите мне найти правильный.Я уверен, что мой код работает, но как правильно его проверить?