Files
nginx-unit/test/python/lifespan/empty/asgi.py
Andrei Zeliankou 7934dcabbc Tests: switched to using f-strings.
Previously, it was necessary to support older versions of Python for
compatibility.  F-strings were released in Python 3.6.  Python 3.5 was
marked as unsupported by the end of 2020, so now it's possible to start
using f-strings safely for better readability and performance.
2023-02-21 17:21:29 +00:00

38 lines
1.1 KiB
Python

import os
async def handler(prefix, scope, receive, send):
if scope['type'] == 'lifespan':
with open(f'{prefix}version', 'w+') as f:
f.write(
f"{scope['asgi']['version']} {scope['asgi']['spec_version']}"
)
while True:
message = await receive()
if message['type'] == 'lifespan.startup':
os.remove(f'{prefix}startup')
await send({'type': 'lifespan.startup.complete'})
elif message['type'] == 'lifespan.shutdown':
os.remove(f'{prefix}shutdown')
await send({'type': 'lifespan.shutdown.complete'})
return
if scope['type'] == 'http':
await send(
{
'type': 'http.response.start',
'status': 204,
'headers': [
(b'content-length', b'0'),
],
}
)
async def application(scope, receive, send):
return await handler('', scope, receive, send)
async def application2(scope, receive, send):
return await handler('app2_', scope, receive, send)