52 lines
1.2 KiB
Python
52 lines
1.2 KiB
Python
import time
|
|
|
|
import pytest
|
|
from unit.applications.proto import TestApplicationProto
|
|
|
|
|
|
class TestReconfigure(TestApplicationProto):
|
|
prerequisites = {}
|
|
|
|
@pytest.fixture(autouse=True)
|
|
def setup_method_fixture(self):
|
|
assert 'success' in self.conf(
|
|
{
|
|
"listeners": {"*:7080": {"pass": "routes"}},
|
|
"routes": [{"action": {"return": 200}}],
|
|
"applications": {},
|
|
}
|
|
)
|
|
|
|
def clear_conf(self):
|
|
assert 'success' in self.conf({"listeners": {}, "applications": {}})
|
|
|
|
def test_reconfigure(self):
|
|
sock = self.http(
|
|
b"""GET / HTTP/1.1
|
|
""",
|
|
raw=True,
|
|
no_recv=True,
|
|
)
|
|
|
|
self.clear_conf()
|
|
|
|
resp = self.http(
|
|
b"""Host: localhost
|
|
Connection: close
|
|
|
|
""",
|
|
sock=sock,
|
|
raw=True,
|
|
)
|
|
assert resp['status'] == 200, 'finish request'
|
|
|
|
def test_reconfigure_2(self):
|
|
sock = self.http(b'', raw=True, no_recv=True)
|
|
|
|
# Waiting for connection completion.
|
|
# Delay should be more than TCP_DEFER_ACCEPT.
|
|
time.sleep(1.5)
|
|
|
|
self.clear_conf()
|
|
|
|
assert self.get(sock=sock)['status'] == 408, 'request timeout'
|