OLD | NEW |
1 """Utilities shared by tests.""" | 1 """Utilities shared by tests.""" |
2 | 2 |
3 import cgi | 3 import cgi |
4 import contextlib | 4 import contextlib |
5 import gc | 5 import gc |
6 import email.parser | 6 import email.parser |
7 import http.server | 7 import http.server |
8 import json | 8 import json |
9 import logging | 9 import logging |
10 import io | 10 import io |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
91 sslcontext = ssl.SSLContext(ssl.PROTOCOL_SSLv23) | 91 sslcontext = ssl.SSLContext(ssl.PROTOCOL_SSLv23) |
92 sslcontext.load_cert_chain(certfile, keyfile) | 92 sslcontext.load_cert_chain(certfile, keyfile) |
93 else: | 93 else: |
94 sslcontext = False | 94 sslcontext = False |
95 | 95 |
96 def run(loop, fut): | 96 def run(loop, fut): |
97 thread_loop = tulip.new_event_loop() | 97 thread_loop = tulip.new_event_loop() |
98 thread_loop.set_log_level(logging.CRITICAL) | 98 thread_loop.set_log_level(logging.CRITICAL) |
99 tulip.set_event_loop(thread_loop) | 99 tulip.set_event_loop(thread_loop) |
100 | 100 |
101 sock = thread_loop.run_until_complete( | 101 socks = thread_loop.run_until_complete( |
102 thread_loop.start_serving( | 102 thread_loop.start_serving( |
103 TestHttpServer, host, port, ssl=sslcontext)) | 103 TestHttpServer, host, port, ssl=sslcontext)) |
104 | 104 |
105 waiter = tulip.Future() | 105 waiter = tulip.Future() |
106 loop.call_soon_threadsafe( | 106 loop.call_soon_threadsafe( |
107 fut.set_result, (thread_loop, waiter, sock.getsockname())) | 107 fut.set_result, (thread_loop, waiter, socks[0].getsockname())) |
108 | 108 |
109 thread_loop.run_until_complete(waiter) | 109 thread_loop.run_until_complete(waiter) |
110 thread_loop.stop() | 110 thread_loop.stop() |
111 gc.collect() | 111 gc.collect() |
112 | 112 |
113 fut = tulip.Future() | 113 fut = tulip.Future() |
114 server_thread = threading.Thread(target=run, args=(loop, fut)) | 114 server_thread = threading.Thread(target=run, args=(loop, fut)) |
115 server_thread.start() | 115 server_thread.start() |
116 | 116 |
117 thread_loop, waiter, addr = loop.run_until_complete(fut) | 117 thread_loop, waiter, addr = loop.run_until_complete(fut) |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
247 if chunked: | 247 if chunked: |
248 response.force_chunked() | 248 response.force_chunked() |
249 | 249 |
250 # headers | 250 # headers |
251 response.add_headers(*hdrs) | 251 response.add_headers(*hdrs) |
252 response.send_headers() | 252 response.send_headers() |
253 | 253 |
254 # write payload | 254 # write payload |
255 response.write(client.str_to_bytes(body)) | 255 response.write(client.str_to_bytes(body)) |
256 response.write_eof() | 256 response.write_eof() |
OLD | NEW |