ブループリントからのすべてのルートが、ログインが必要なデコレータで保護されていることをテストしたいと思います。
要点: 開発者が新しいルートを追加し、このデコレータを追加するのを忘れた場合、テストでその不足を自動的に検出したいと考えています。
そのために、すべてのルートとメソッドをループしたいと思います
for rule in app.url_map.iter_rules():
if rule.endpoint.startswith("my_blueprint"):
response = app.test_client().get(rule)
assert response.status_code == 401
ご覧のとおり、このようにメソッド (get、post..) を指定する必要がありますapp.test_client().get(rule)
。
メソッドを呼び出すより動的な方法はありますか?