xref: /unit/test/python/mirror/asgi.py (revision 1626)
1*1626Smax.romanov@nginx.comasync def application(scope, receive, send):
2*1626Smax.romanov@nginx.com    assert scope['type'] == 'http'
3*1626Smax.romanov@nginx.com
4*1626Smax.romanov@nginx.com    body = b''
5*1626Smax.romanov@nginx.com    while True:
6*1626Smax.romanov@nginx.com        m = await receive()
7*1626Smax.romanov@nginx.com        body += m.get('body', b'')
8*1626Smax.romanov@nginx.com        if not m.get('more_body', False):
9*1626Smax.romanov@nginx.com            break
10*1626Smax.romanov@nginx.com
11*1626Smax.romanov@nginx.com    await send({
12*1626Smax.romanov@nginx.com        'type': 'http.response.start',
13*1626Smax.romanov@nginx.com        'status': 200,
14*1626Smax.romanov@nginx.com        'headers': [
15*1626Smax.romanov@nginx.com            (b'content-length', str(len(body)).encode()),
16*1626Smax.romanov@nginx.com        ]
17*1626Smax.romanov@nginx.com    })
18*1626Smax.romanov@nginx.com
19*1626Smax.romanov@nginx.com    await send({
20*1626Smax.romanov@nginx.com        'type': 'http.response.body',
21*1626Smax.romanov@nginx.com        'body': body,
22*1626Smax.romanov@nginx.com    })
23