..だからである:フラスコ - トラブル特定のエンドポイントの要求別のフラスコの質問に戻る再びサブドメイン
私のアプリケーションは、様々な部分の代わりに、プレフィックスのサブドメインの利用を中心に大幅に設定されています。そのように、私のアプリのための典型的なURLは次のようになります。
domain.tld/
domain.tld/about
admin.domain.tld/
admin.domain.tld/login
etc.
私はユニットテストを構成していると私が問題に遭遇しているように見えるしました。 FlaskとWerkzeugのドキュメントをたくさん検索しましたが、私の問題を解決する方法を見つけることができません。
私がテストしているとき、私はGET
のさまざまなURLへのリクエストをシミュレートしようとしています。これらのURLの多くはサブドメインに分類されます。私は論理的であるように見えるでしょう次のことを試してみた:
with app.app_context():
url = url_for("admin.login") # returns http://admin.domain.tld:80/login
with app.test_client() as c:
resp = c.get(url) # Fails: returns 404
assert resp.data == "Expected test response", "Bad Response"
今..私の
c.get
のURLで予想されるデータを含む応答を返す必要がありますが、代わりに私はデフォルトの404ハンドラを与えられています。これにより、私のルートの多くをテストすることが非常に難しくなります。
私はFlaskにいくつかの読書をして、a github issueがテストクライアントが相対URLを期待していることを発見しました...うーん。私はサブドメインを指定する必要があるので、それをどのように提供するのかは分かりません。
さらに、読んだところで、FlaskテストクライアントはWerkzeugテストクライアント上に構築されており、Werkzeugテストクライアントには通常allow_subdomain_redirectsというオプションが含まれていることが判明しました。残念ながら、Flaskテストクライアントがこれまでの動作を行うように設定しようとすると失敗しました(私は間違っているかもしれません)。
とにかく、私のフラスコアプリでリクエストをシミュレートしてサブドメインをターゲットにする方法を知っている人はいますか?現時点では、私はすべてのアイデアがありません。ご意見ありがとうございます。 :)
[Github Issue] [Gist demonstration issue](https://gist.github.com/CorneliaXaos/9e4fa46f442f72fc5bff07ffedace397) –