Tests: style.

This commit is contained in:
Andrey Zelenkov
2019-03-26 23:38:30 +03:00
parent 3d7a47c9ac
commit 281899fcef
18 changed files with 4091 additions and 2312 deletions

View File

@@ -3,45 +3,73 @@ import socket
import unittest
import unit
class TestUnitSettings(unit.TestUnitApplicationPython):
class TestUnitSettings(unit.TestUnitApplicationPython):
def setUpClass():
unit.TestUnit().check_modules('python')
def test_settings_header_read_timeout(self):
self.load('empty')
self.conf({'http': { 'header_read_timeout': 2 }}, 'settings')
self.conf({'http': {'header_read_timeout': 2}}, 'settings')
(resp, sock) = self.http(b"""GET / HTTP/1.1
""", start=True, read_timeout=1, raw=True)
(resp, sock) = self.http(
b"""GET / HTTP/1.1
""",
start=True,
read_timeout=1,
raw=True,
)
time.sleep(3)
resp = self.http(b"""Host: localhost
resp = self.http(
b"""Host: localhost
Connection: close
""", sock=sock, raw=True)
""",
sock=sock,
raw=True,
)
self.assertEqual(resp['status'], 408, 'status header read timeout')
def test_settings_header_read_timeout_update(self):
self.load('empty')
self.conf({'http': { 'header_read_timeout': 4 }}, 'settings')
self.conf({'http': {'header_read_timeout': 4}}, 'settings')
(resp, sock) = self.http(b"""GET / HTTP/1.1
""", start=True, read_timeout=1, raw=True, no_recv=True)
(resp, sock) = self.http(
b"""GET / HTTP/1.1
""",
start=True,
read_timeout=1,
raw=True,
no_recv=True,
)
time.sleep(2)
(resp, sock) = self.http(b"""Host: localhost
""", start=True, sock=sock, read_timeout=1, raw=True, no_recv=True)
(resp, sock) = self.http(
b"""Host: localhost
""",
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, read_timeout=1, raw=True)
(resp, sock) = self.http(
b"""X-Blah: blah
""",
start=True,
sock=sock,
read_timeout=1,
raw=True,
)
if len(resp) != 0:
sock.close()
@@ -49,24 +77,35 @@ Connection: close
else:
time.sleep(2)
resp = self.http(b"""Connection: close
resp = self.http(
b"""Connection: close
""", sock=sock, raw=True)
""",
sock=sock,
raw=True,
)
self.assertEqual(resp['status'], 408,
'status header read timeout update')
self.assertEqual(
resp['status'], 408, 'status header read timeout update'
)
def test_settings_body_read_timeout(self):
self.load('empty')
self.conf({'http': { 'body_read_timeout': 2 }}, 'settings')
self.conf({'http': {'body_read_timeout': 2}}, 'settings')
(resp, sock) = self.http(b"""POST / HTTP/1.1
(resp, sock) = self.http(
b"""POST / HTTP/1.1
Host: localhost
Content-Length: 10
Connection: close
""", start=True, raw_resp=True, read_timeout=1, raw=True)
""",
start=True,
raw_resp=True,
read_timeout=1,
raw=True,
)
time.sleep(3)
@@ -77,37 +116,46 @@ Connection: close
def test_settings_body_read_timeout_update(self):
self.load('empty')
self.conf({'http': { 'body_read_timeout': 4 }}, 'settings')
self.conf({'http': {'body_read_timeout': 4}}, 'settings')
(resp, sock) = self.http(b"""POST / HTTP/1.1
(resp, sock) = self.http(
b"""POST / HTTP/1.1
Host: localhost
Content-Length: 10
Connection: close
""", start=True, read_timeout=1, raw=True)
""",
start=True,
read_timeout=1,
raw=True,
)
time.sleep(2)
(resp, sock) = self.http(b"""012""", start=True, sock=sock,
read_timeout=1, 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,
read_timeout=1, raw=True)
(resp, sock) = self.http(
b"""345""", start=True, sock=sock, read_timeout=1, raw=True
)
time.sleep(2)
resp = self.http(b"""6789""", sock=sock, raw=True)
self.assertEqual(resp['status'], 200, 'status body read timeout update')
self.assertEqual(
resp['status'], 200, 'status body read timeout update'
)
def test_settings_send_timeout(self):
self.load('mirror')
data_len = 1048576
self.conf({'http': { 'send_timeout': 1 }}, 'settings')
self.conf({'http': {'send_timeout': 1}}, 'settings')
addr = self.testdir + '/sock'
@@ -122,7 +170,9 @@ Content-Type: text/html
Content-Length: %d
Connection: close
""" % data_len + ('X' * data_len)
""" % data_len + (
'X' * data_len
)
sock.sendall(req.encode())
@@ -140,35 +190,40 @@ Connection: close
def test_settings_idle_timeout(self):
self.load('empty')
self.conf({'http': { 'idle_timeout': 2 }}, 'settings')
self.conf({'http': {'idle_timeout': 2}}, 'settings')
(resp, sock) = self.get(headers={
'Host': 'localhost',
'Connection': 'keep-alive'
}, start=True, read_timeout=1)
(resp, sock) = self.get(
headers={'Host': 'localhost', 'Connection': 'keep-alive'},
start=True,
read_timeout=1,
)
time.sleep(3)
resp = self.get(headers={
'Host': 'localhost',
'Connection': 'close'
}, sock=sock)
resp = self.get(
headers={'Host': 'localhost', 'Connection': 'close'}, sock=sock
)
self.assertEqual(resp['status'], 408, 'status idle timeout')
def test_settings_max_body_size(self):
self.load('empty')
self.conf({'http': { 'max_body_size': 5 }}, 'settings')
self.conf({'http': {'max_body_size': 5}}, 'settings')
self.assertEqual(self.post(body='01234')['status'], 200, 'status size')
self.assertEqual(self.post(body='012345')['status'], 413,
'status size max')
self.assertEqual(
self.post(body='012345')['status'], 413, 'status size max'
)
@unittest.expectedFailure
def test_settings_negative_value(self):
self.assertIn('error', self.conf({'http': { 'max_body_size': -1 }},
'settings'), 'settings negative value')
self.assertIn(
'error',
self.conf({'http': {'max_body_size': -1}}, 'settings'),
'settings negative value',
)
if __name__ == '__main__':
TestUnitSettings.main()