Commit 32058a62 authored by Jérome Perrin's avatar Jérome Perrin

software/erp5/test: Make the "slow server" from test reply in 2 seconds

Since haproxy checks backend is up at an inteval or 3 seconds with a timeout
of 3 seconds, it can happen that the server reply in a bit more of 3 seconds
and haproxy mark it as down.

By using a shorter response time in test, we can achieve the same test coverage
without this race condition and test runs a bit faster.
parent 11ba673a
...@@ -147,14 +147,14 @@ class BalancerTestCase(ERP5InstanceTestCase): ...@@ -147,14 +147,14 @@ class BalancerTestCase(ERP5InstanceTestCase):
class SlowHTTPServer(ManagedHTTPServer): class SlowHTTPServer(ManagedHTTPServer):
"""An HTTP Server which reply after 3 seconds. """An HTTP Server which reply after 2 seconds.
""" """
class RequestHandler(BaseHTTPRequestHandler): class RequestHandler(BaseHTTPRequestHandler):
def do_GET(self): def do_GET(self):
# type: () -> None # type: () -> None
self.send_response(200) self.send_response(200)
self.send_header("Content-Type", "text/plain") self.send_header("Content-Type", "text/plain")
time.sleep(3) time.sleep(2)
self.end_headers() self.end_headers()
self.wfile.write("OK\n") self.wfile.write("OK\n")
...@@ -184,7 +184,7 @@ class TestAccessLog(BalancerTestCase, CrontabMixin): ...@@ -184,7 +184,7 @@ class TestAccessLog(BalancerTestCase, CrontabMixin):
self.assertIn('/url_path', access_line) self.assertIn('/url_path', access_line)
# last \d is the request time in micro seconds, since this SlowHTTPServer # last \d is the request time in micro seconds, since this SlowHTTPServer
# sleeps for 3 seconds, it should take between 3 and 4 seconds to process # sleeps for 2 seconds, it should take between 2 and 3 seconds to process
# the request - but our test machines can be slow sometimes, so we tolerate # the request - but our test machines can be slow sometimes, so we tolerate
# it can take up to 20 seconds. # it can take up to 20 seconds.
match = re.match( match = re.match(
...@@ -194,7 +194,7 @@ class TestAccessLog(BalancerTestCase, CrontabMixin): ...@@ -194,7 +194,7 @@ class TestAccessLog(BalancerTestCase, CrontabMixin):
self.assertTrue(match) self.assertTrue(match)
assert match assert match
request_time = int(match.groups()[-1]) request_time = int(match.groups()[-1])
self.assertGreater(request_time, 3 * 1000 * 1000) self.assertGreater(request_time, 2 * 1000 * 1000)
self.assertLess(request_time, 20 * 1000 * 1000) self.assertLess(request_time, 20 * 1000 * 1000)
def test_access_log_apachedex_report(self): def test_access_log_apachedex_report(self):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment