diff options
author | Max Romanov <max.romanov@nginx.com> | 2020-11-05 00:05:02 +0300 |
---|---|---|
committer | Max Romanov <max.romanov@nginx.com> | 2020-11-05 00:05:02 +0300 |
commit | f27953af6103db390aa3eee012a254f130fdf5f4 (patch) | |
tree | e82315a74a839febc1141d1e24ec1464d6285aa1 /test/test_asgi_application.py | |
parent | 8e37b1cbf5ad2935c1777992ebded183e6454ba4 (diff) | |
download | unit-f27953af6103db390aa3eee012a254f130fdf5f4.tar.gz unit-f27953af6103db390aa3eee012a254f130fdf5f4.tar.bz2 |
Tests: added Python threading tests.
Diffstat (limited to 'test/test_asgi_application.py')
-rw-r--r-- | test/test_asgi_application.py | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/test/test_asgi_application.py b/test/test_asgi_application.py index 1a654ebf..179a69ee 100644 --- a/test/test_asgi_application.py +++ b/test/test_asgi_application.py @@ -401,3 +401,44 @@ Connection: close assert ( self.wait_for_record(r'\(5\) Thread: 100') is not None ), 'last thread finished' + + def test_asgi_application_threads(self): + self.load('threads') + + assert 'success' in self.conf( + '4', 'applications/threads/threads' + ), 'configure 4 threads' + + socks = [] + + for i in range(4): + (_, sock) = self.get( + headers={ + 'Host': 'localhost', + 'X-Delay': '2', + 'Connection': 'close', + }, + no_recv=True, + start=True, + ) + + socks.append(sock) + + time.sleep(0.25) # required to avoid greedy request reading + + threads = set() + + for sock in socks: + resp = self.recvall(sock).decode('utf-8') + + self.log_in(resp) + + resp = self._resp_to_dict(resp) + + assert resp['status'] == 200, 'status' + + threads.add(resp['headers']['x-thread']) + + sock.close() + + assert len(socks) == len(threads), 'threads differs' |