Тестовый клиент Django игнорирует термины «включить» в шаблоне Django - PullRequest
0 голосов
/ 19 января 2019

У меня проблема с клиентом тестов Django.Пусть для пути home у меня есть этот шаблон (home.html):

<html>
    <body>
       {% include 'example.html' %}
    </body>
</html>

и в example.html у меня ошибка:

<div>
   {% non_registered_tag arg1 arg2 %}
</div>

Я написал тест на доступностьна URL Django.

class HomePageAccess(TestCase):
  def test_home_page(self):
    client = Client()
    response = client.get(reverse_lazy('home'))
    self.assertEqual(response.status_code, 200)

Этот код успешно завершается с ошибкой, если в home.html есть ошибка, но если есть ошибка в example.html, включенная в home.html Тест будет пройден, даже еслимы ожидаем сбоя, потому что я включил его в home.html, и в браузере я обнаружил ошибку (код состояния 500), хотя в тестовом клиенте этого не произошло.

Это нормально?Я использую Django 2.0.2.Любая помощь будет оценена

1 Ответ

0 голосов
/ 22 января 2019

Я подозреваю, что здесь происходит то, что у вас есть опция debug, установленная на False в разделе OPTIONS в настройке TEMPLATES, или вы полностью ее опустили (в этом случае она принимает значениеобщая настройка DEBUG).

Явная установка debug на True должна выявить ошибку, и ваш тест должен завершиться неудачно.

TEMPLATES = [
    {
        ...
        'OPTIONS': {
            'debug': True,
        },
    },
]

Более подробная информация о debug настройки можно найти в разделе шаблонов документации Django здесь .

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