summaryrefslogtreecommitdiffhomepage
path: root/test/python/threading/asgi.py
diff options
context:
space:
mode:
authorMax Romanov <max.romanov@nginx.com>2020-10-01 23:55:43 +0300
committerMax Romanov <max.romanov@nginx.com>2020-10-01 23:55:43 +0300
commit12f225a43acc6b5086b08c3d7df6f6ac2322efa1 (patch)
treeb74841e98672e5fe9233175ec11cb9a63739f27d /test/python/threading/asgi.py
parentd97e3a3296db77f6a33ce010a66d2a0b2d4bac49 (diff)
downloadunit-12f225a43acc6b5086b08c3d7df6f6ac2322efa1.tar.gz
unit-12f225a43acc6b5086b08c3d7df6f6ac2322efa1.tar.bz2
Tests: added ASGI HTTP applications.
Diffstat (limited to 'test/python/threading/asgi.py')
-rw-r--r--test/python/threading/asgi.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/test/python/threading/asgi.py b/test/python/threading/asgi.py
new file mode 100644
index 00000000..3c978e50
--- /dev/null
+++ b/test/python/threading/asgi.py
@@ -0,0 +1,42 @@
+import asyncio
+import sys
+import time
+import threading
+
+
+class Foo(threading.Thread):
+ num = 10
+
+ def __init__(self, x):
+ self.__x = x
+ threading.Thread.__init__(self)
+
+ def log_index(self, index):
+ sys.stderr.write(
+ "(" + str(index) + ") Thread: " + str(self.__x) + "\n"
+ )
+ sys.stderr.flush()
+
+ def run(self):
+ i = 0
+ for _ in range(3):
+ self.log_index(i)
+ i += 1
+ time.sleep(1)
+ self.log_index(i)
+ i += 1
+
+
+async def application(scope, receive, send):
+ assert scope['type'] == 'http'
+
+ Foo(Foo.num).start()
+ Foo.num += 10
+
+ await send({
+ 'type': 'http.response.start',
+ 'status': 200,
+ 'headers': [
+ (b'content-length', b'0'),
+ ]
+ })