xref: /unit/test/python/delayed/wsgi.py (revision 1445:5a603827ec10)
11274Szelenkov@nginx.comimport time
21274Szelenkov@nginx.com
31274Szelenkov@nginx.com
41274Szelenkov@nginx.comdef application(environ, start_response):
51274Szelenkov@nginx.com    parts = int(environ.get('HTTP_X_PARTS', 1))
61274Szelenkov@nginx.com    delay = int(environ.get('HTTP_X_DELAY', 0))
71274Szelenkov@nginx.com
81274Szelenkov@nginx.com    content_length = int(environ.get('CONTENT_LENGTH', 0))
91274Szelenkov@nginx.com    body = bytes(environ['wsgi.input'].read(content_length))
101274Szelenkov@nginx.com
111274Szelenkov@nginx.com    write = start_response('200', [('Content-Length', str(len(body)))])
121274Szelenkov@nginx.com
131274Szelenkov@nginx.com    if not body:
14*1445Szelenkov@nginx.com        time.sleep(delay)
151274Szelenkov@nginx.com        return []
161274Szelenkov@nginx.com
171274Szelenkov@nginx.com    step = int(len(body) / parts)
181274Szelenkov@nginx.com    for i in range(0, len(body), step):
191274Szelenkov@nginx.com        try:
201274Szelenkov@nginx.com            write(body[i : i + step])
211274Szelenkov@nginx.com        except:
221274Szelenkov@nginx.com            break
231274Szelenkov@nginx.com
241274Szelenkov@nginx.com        time.sleep(delay)
251274Szelenkov@nginx.com
261274Szelenkov@nginx.com    return []
27