So .. Wieder zurück mit einer anderen Kolben Frage:Flask - Fehler Anfordern bestimmter Endpunkt, der bei einer Sub-Domäne liegt
Meine Anwendung ist weitgehend um die Verwendung von Sub-Domains für verschiedene Teile anstelle von Präfixen einrichten. Als solche typische Urls für meine app wie folgt aussehen:
domain.tld/
domain.tld/about
admin.domain.tld/
admin.domain.tld/login
etc.
Ich Komponieren Unit-Tests und ich habe scheinen in ein Problem zu laufen. Ich habe die Flask- und Werkzeug-Dokumentation gründlich durchforstet, aber ich kann nicht herausfinden, wie ich mein Problem beheben kann.
Grundsätzlich, wenn ich versuche, versuche ich eine GET
Anfrage an verschiedene URLs zu simulieren .. und viele dieser URLs fallen auf Subdomains. Ich habe die folgende versucht, die logisch zu sein scheint:
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"
Jetzt .. mein c.get
soll eine Antwort zurückgeben erwartete Daten an der URL enthält, sondern stattdessen den Standard-404-Handler Ich werde gegeben. Das macht es ziemlich schwer, viele meiner Routen zu testen.
Ich habe etwas in Flask gelesen und gefunden a github issue, dass der Test-Client erwartet eine relative URL ... naja .. Ich bin nicht sicher, wie ich das zur Verfügung stellen, da ich die Sub-Domain angeben muss.
Außerdem habe ich weiter gelesen und festgestellt, dass der Flask-Test-Client auf dem Werkzeug-Test-Client aufgebaut ist und der Werkzeug-Test-Client eine Option für "allow_subdomain_redirects" enthält, die normalerweise falsch ist. Leider ist der Versuch, meinen Flask-Test-Client so zu konfigurieren, dass er dieses Verhalten hat, fehlgeschlagen (ich könnte es falsch machen).
Wie auch immer, weiß jemand, wie ich eine Anfrage in meiner Kolben-App simulieren und eine Subdomain anvisieren kann? Im Moment habe ich keine Ideen mehr. Danke für Anregungen. :)
[Github Issue.] (Https://github.com/pallets/flask/issues/1955) [Gist demonstrierendes Problem.] (Https://gist.github.com/CorneliaXaos/9e4fa46f442f72fc5bff07ffedace397) –