Always show server location in ASGI (#2522)
Co-authored-by: Adam Hopkins <adam@amhopkins.com> Co-authored-by: Zhiwei Liang <zhi.wei.liang@outlook.com> Co-authored-by: Néstor Pérez <25409753+prryplatypus@users.noreply.github.com>
This commit is contained in:
parent
7827b1b41d
commit
0392d1dcfc
|
@ -1315,7 +1315,7 @@ class Sanic(BaseSanic, RunnerMixin, metaclass=TouchUpMeta):
|
|||
self.config.update_config(config)
|
||||
|
||||
@property
|
||||
def asgi(self):
|
||||
def asgi(self) -> bool:
|
||||
return self.state.asgi
|
||||
|
||||
@asgi.setter
|
||||
|
|
|
@ -525,7 +525,7 @@ class RunnerMixin(metaclass=SanicMeta):
|
|||
)
|
||||
)
|
||||
else:
|
||||
server = ""
|
||||
server = "ASGI" if self.asgi else "unknown" # type: ignore
|
||||
|
||||
display = {
|
||||
"mode": " ".join(mode),
|
||||
|
@ -571,8 +571,12 @@ class RunnerMixin(metaclass=SanicMeta):
|
|||
|
||||
@property
|
||||
def serve_location(self) -> str:
|
||||
server_settings = self.state.server_info[0].settings
|
||||
return self.get_server_location(server_settings)
|
||||
try:
|
||||
server_settings = self.state.server_info[0].settings
|
||||
return self.get_server_location(server_settings)
|
||||
except IndexError:
|
||||
location = "ASGI" if self.asgi else "unknown" # type: ignore
|
||||
return f"http://<{location}>"
|
||||
|
||||
@staticmethod
|
||||
def get_server_location(
|
||||
|
|
|
@ -546,3 +546,13 @@ async def test_signals_triggered(app):
|
|||
assert response.status_code == 200
|
||||
assert response.text == "test_signals_triggered"
|
||||
assert signals_triggered == signals_expected
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_asgi_serve_location(app):
|
||||
@app.get("/")
|
||||
def _request(request: Request):
|
||||
return text(request.app.serve_location)
|
||||
|
||||
_, response = await app.asgi_client.get("/")
|
||||
assert response.text == "http://<ASGI>"
|
||||
|
|
|
@ -76,7 +76,7 @@ def test_full_message(client):
|
|||
)
|
||||
response = client.recv()
|
||||
|
||||
# AltSvcCheck touchup removes the Alt-Svc header from the
|
||||
# AltSvcCheck touchup removes the Alt-Svc header from the
|
||||
# response in the Python 3.9+ in this case
|
||||
assert len(response) == (151 if version_info < (3, 9) else 140)
|
||||
assert b"200 OK" in response
|
||||
|
|
Loading…
Reference in New Issue
Block a user