diff options
author | Andrey Zelenkov <zelenkov@nginx.com> | 2019-02-27 19:43:14 +0300 |
---|---|---|
committer | Andrey Zelenkov <zelenkov@nginx.com> | 2019-02-27 19:43:14 +0300 |
commit | bd77c9a4d2b0f6f609e033060a5486c0afe6b19e (patch) | |
tree | 2a8c4475f96d5a8195451728318e68c67a5c4fb6 | |
parent | 4de2c8b56719fce6b95b6f8a613b349590a3676f (diff) | |
download | unit-bd77c9a4d2b0f6f609e033060a5486c0afe6b19e.tar.gz unit-bd77c9a4d2b0f6f609e033060a5486c0afe6b19e.tar.bz2 |
Tests: read_timeout option introduced.
Also, increased default select() timeout from 1s to 5s.
-rw-r--r-- | test/test_python_procman.py | 2 | ||||
-rw-r--r-- | test/test_settings.py | 20 | ||||
-rw-r--r-- | test/unit.py | 7 |
3 files changed, 16 insertions, 13 deletions
diff --git a/test/test_python_procman.py b/test/test_python_procman.py index 65268d49..2efe59c0 100644 --- a/test/test_python_procman.py +++ b/test/test_python_procman.py @@ -226,7 +226,7 @@ class TestUnitPythonProcman(unit.TestUnitApplicationPython): (resp, sock) = self.get(headers={ 'Host': 'localhost', 'Connection': 'keep-alive' - }, start=True) + }, start=True, read_timeout=1) self.assertEqual(len(self.pids_for_process()), 1, 'keepalive connection 1') diff --git a/test/test_settings.py b/test/test_settings.py index 324042f9..13bfad49 100644 --- a/test/test_settings.py +++ b/test/test_settings.py @@ -14,7 +14,7 @@ class TestUnitSettings(unit.TestUnitApplicationPython): self.conf({'http': { 'header_read_timeout': 2 }}, 'settings') (resp, sock) = self.http(b"""GET / HTTP/1.1 -""", start=True, raw=True) +""", start=True, read_timeout=1, raw=True) time.sleep(3) @@ -31,17 +31,17 @@ Connection: close self.conf({'http': { 'header_read_timeout': 4 }}, 'settings') (resp, sock) = self.http(b"""GET / HTTP/1.1 -""", start=True, raw=True, no_recv=True) +""", start=True, read_timeout=1, raw=True, no_recv=True) time.sleep(2) (resp, sock) = self.http(b"""Host: localhost -""", start=True, sock=sock, raw=True, no_recv=True) +""", start=True, sock=sock, read_timeout=1, raw=True, no_recv=True) time.sleep(2) (resp, sock) = self.http(b"""X-Blah: blah -""", start=True, sock=sock, raw=True) +""", start=True, sock=sock, read_timeout=1, raw=True) if len(resp) != 0: sock.close() @@ -66,7 +66,7 @@ Host: localhost Content-Length: 10 Connection: close -""", start=True, raw_resp=True, raw=True) +""", start=True, raw_resp=True, read_timeout=1, raw=True) time.sleep(3) @@ -84,15 +84,17 @@ Host: localhost Content-Length: 10 Connection: close -""", start=True, raw=True) +""", start=True, read_timeout=1, raw=True) time.sleep(2) - (resp, sock) = self.http(b"""012""", start=True, sock=sock, raw=True) + (resp, sock) = self.http(b"""012""", start=True, sock=sock, + read_timeout=1, raw=True) time.sleep(2) - (resp, sock) = self.http(b"""345""", start=True, sock=sock, raw=True) + (resp, sock) = self.http(b"""345""", start=True, sock=sock, + read_timeout=1, raw=True) time.sleep(2) @@ -143,7 +145,7 @@ Connection: close (resp, sock) = self.get(headers={ 'Host': 'localhost', 'Connection': 'keep-alive' - }, start=True) + }, start=True, read_timeout=1) time.sleep(3) diff --git a/test/unit.py b/test/unit.py index 80e26e0d..7a51eb20 100644 --- a/test/unit.py +++ b/test/unit.py @@ -357,7 +357,8 @@ class TestUnitHTTP(TestUnit): if 'no_recv' not in kwargs: enc = 'utf-8' if 'encoding' not in kwargs else kwargs['encoding'] - resp = self.recvall(sock).decode(enc) + read_timeout = 5 if 'read_timeout' not in kwargs else kwargs['read_timeout'] + resp = self.recvall(sock, read_timeout=read_timeout).decode(enc) if TestUnit.detailed: print('<<<', resp.encode('utf-8'), sep='\n') @@ -383,9 +384,9 @@ class TestUnitHTTP(TestUnit): def put(self, **kwargs): return self.http('PUT', **kwargs) - def recvall(self, sock, buff_size=4096): + def recvall(self, sock, read_timeout=5, buff_size=4096): data = b'' - while select.select([sock], [], [], 1)[0]: + while select.select([sock], [], [], read_timeout)[0]: try: part = sock.recv(buff_size) except: |