有没有办法测试flask模板是否包含链接?

2024-04-25 13:19:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在测试路由是否存在

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

我的模板有一个指向其他页面的超链接。有没有办法测试这种情况是否存在?你知道吗


Tags: testself模板app路由getindexdef
1条回答
网友
1楼 · 发布于 2024-04-25 13:19:30

好吧,如果你在测试模板,你呈现的每个模板都是对某个路由请求的结果。如果您使用url_for()呈现模板中的url,那么如果url指向不存在的路由,它将引发BuildError,并且服务器将返回状态代码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?错误,使测试失败。你知道吗

我希望这个解释足够清楚!你知道吗

相关问题 更多 >