summaryrefslogtreecommitdiffhomepage
path: root/test/python/threads/asgi.py
diff options
context:
space:
mode:
authorMax Romanov <max.romanov@nginx.com>2020-11-05 00:05:02 +0300
committerMax Romanov <max.romanov@nginx.com>2020-11-05 00:05:02 +0300
commitf27953af6103db390aa3eee012a254f130fdf5f4 (patch)
treee82315a74a839febc1141d1e24ec1464d6285aa1 /test/python/threads/asgi.py
parent8e37b1cbf5ad2935c1777992ebded183e6454ba4 (diff)
downloadunit-f27953af6103db390aa3eee012a254f130fdf5f4.tar.gz
unit-f27953af6103db390aa3eee012a254f130fdf5f4.tar.bz2
Tests: added Python threading tests.
Diffstat (limited to 'test/python/threads/asgi.py')
-rw-r--r--test/python/threads/asgi.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/python/threads/asgi.py b/test/python/threads/asgi.py
new file mode 100644
index 00000000..d51ae431
--- /dev/null
+++ b/test/python/threads/asgi.py
@@ -0,0 +1,27 @@
+import asyncio
+import time
+import threading
+
+async def application(scope, receive, send):
+ assert scope['type'] == 'http'
+
+ headers = scope.get('headers', [])
+
+ def get_header(n, v=None):
+ for h in headers:
+ if h[0] == n:
+ return h[1]
+ return v
+
+ delay = float(get_header(b'x-delay', 0))
+
+ time.sleep(delay)
+
+ await send({
+ 'type': 'http.response.start',
+ 'status': 200,
+ 'headers': [
+ (b'content-length', b'0'),
+ (b'x-thread', str(threading.currentThread().ident).encode()),
+ ]
+ })