Есть ли способ проверить, содержит ли шаблон колбы ссылку? - PullRequest
0 голосов
/ 23 ноября 2018

Я проверял, существуют ли маршруты, используя

def test_index(self):
    r = self.app.get("/")
    self.assertEqual(200, r.status_code, "Status code was not 'OK'.")

В моем шаблоне есть гиперссылка на другую страницу.Есть ли способ проверить, существует ли он?

1 Ответ

0 голосов
/ 23 ноября 2018

Ну, если вы тестируете шаблоны, каждый шаблон, который вы отображаете, является результатом запроса к какому-либо маршруту.Если вы отображаете URL-адреса в шаблоне, используя url_for(), то он увеличит значение BuildError, если URL-адрес указывает на несуществующий маршрут, и сервер вернет код состояния 500. Следовательно, вам не нужно анализироватьваши шаблоны вручную для целей тестирования, если вы просто проверите маршрут.

Пример:

from flask import Flask, render_template_string

app = Flask(__name__)

@app.route('/index')
def index():
    return render_template_string("""
        {{ url_for('index') }}
        {{ url_for('blabla') }}
    """)


def test_index(self):
    r = self.app.get("/index")
    self.assertEqual(200, r.status_code, "Status code was not 'OK'.")

Это приведет к ошибке routing.BuildError: Could not build url for endpoint 'blabla'. Did you mean 'static' instead?, которая приведет к неудаче ваших тестов.

Надеюсь, это объяснение достаточно ясное!

...