summaryrefslogtreecommitdiffhomepage
path: root/test/test_reconfigure.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_reconfigure.py')
-rw-r--r--test/test_reconfigure.py53
1 files changed, 53 insertions, 0 deletions
diff --git a/test/test_reconfigure.py b/test/test_reconfigure.py
new file mode 100644
index 00000000..ab05a1c8
--- /dev/null
+++ b/test/test_reconfigure.py
@@ -0,0 +1,53 @@
+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
+""",
+ start=True,
+ 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, start=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'