summaryrefslogtreecommitdiffhomepage
path: root/test/python
diff options
context:
space:
mode:
Diffstat (limited to 'test/python')
-rw-r--r--test/python/header_fields/wsgi.py9
-rw-r--r--test/python/legacy/asgi.py13
-rw-r--r--test/python/legacy_force/asgi.py17
-rw-r--r--test/python/threads/asgi.py27
-rw-r--r--test/python/threads/wsgi.py15
5 files changed, 81 insertions, 0 deletions
diff --git a/test/python/header_fields/wsgi.py b/test/python/header_fields/wsgi.py
new file mode 100644
index 00000000..bd1ba0e2
--- /dev/null
+++ b/test/python/header_fields/wsgi.py
@@ -0,0 +1,9 @@
+def application(environ, start_response):
+
+ h = (k for k, v in environ.items() if k.startswith('HTTP_'))
+
+ start_response('200', [
+ ('Content-Length', '0'),
+ ('All-Headers', ','.join(h))
+ ])
+ return []
diff --git a/test/python/legacy/asgi.py b/test/python/legacy/asgi.py
new file mode 100644
index 00000000..f065d026
--- /dev/null
+++ b/test/python/legacy/asgi.py
@@ -0,0 +1,13 @@
+def application(scope):
+ assert scope['type'] == 'http'
+
+ return app_http
+
+async def app_http(receive, send):
+ await send({
+ 'type': 'http.response.start',
+ 'status': 200,
+ 'headers': [
+ (b'content-length', b'0'),
+ ]
+ })
diff --git a/test/python/legacy_force/asgi.py b/test/python/legacy_force/asgi.py
new file mode 100644
index 00000000..2e5859f2
--- /dev/null
+++ b/test/python/legacy_force/asgi.py
@@ -0,0 +1,17 @@
+def application(scope, receive=None, send=None):
+ assert scope['type'] == 'http'
+
+ if receive == None and send == None:
+ return app_http
+
+ else:
+ return app_http(receive, send)
+
+async def app_http(receive, send):
+ await send({
+ 'type': 'http.response.start',
+ 'status': 200,
+ 'headers': [
+ (b'content-length', b'0'),
+ ]
+ })
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()),
+ ]
+ })
diff --git a/test/python/threads/wsgi.py b/test/python/threads/wsgi.py
new file mode 100644
index 00000000..1cc8ffe2
--- /dev/null
+++ b/test/python/threads/wsgi.py
@@ -0,0 +1,15 @@
+import time
+import threading
+
+def application(environ, start_response):
+ delay = float(environ.get('HTTP_X_DELAY', 0))
+
+ time.sleep(delay)
+
+ start_response('200', [
+ ('Content-Length', '0'),
+ ('Wsgi-Multithread', str(environ['wsgi.multithread'])),
+ ('X-Thread', str(threading.currentThread().ident))
+ ])
+
+ return []