Skip to content

Commit

Permalink
test: stabilize log probe in test_pool_acquisition_timeout
Browse files Browse the repository at this point in the history
There's two lines of log output, and their order is not deterministic.
  • Loading branch information
robx committed Apr 6, 2023
1 parent d3b10e7 commit 963416a
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 16 deletions.
12 changes: 12 additions & 0 deletions test/io/postgrest.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,18 @@ class PostgrestProcess:
process: object
session: object

def read_stdout(self, nlines=1):
"Wait for line(s) on standard output."
output = []
for _ in range(10):
l = self.process.stdout.readline()
if l:
output.append(l.decode())
if len(output) >= nlines:
break
time.sleep(0.1)
return output


@contextlib.contextmanager
def run(
Expand Down
21 changes: 5 additions & 16 deletions test/io/test_io.py
Original file line number Diff line number Diff line change
Expand Up @@ -416,14 +416,8 @@ def test_invalid_role_claim_key_notify_reload(defaultenv):
with run(env=env) as postgrest:
postgrest.session.post("/rpc/invalid_role_claim_key_reload")

output = None
for _ in range(10):
output = postgrest.process.stdout.readline()
if output:
break
time.sleep(0.1)

assert "failed to parse role-claim-key value" in output.decode()
output = postgrest.read_stdout()
assert "failed to parse role-claim-key value" in output[0]

response = postgrest.session.post("/rpc/reset_invalid_role_claim_key")
assert response.status_code == 204
Expand Down Expand Up @@ -572,14 +566,9 @@ def test_pool_acquisition_timeout(defaultenv, metapostgrest):
assert data["message"] == "Timed out acquiring connection from connection pool."

# ensure the message appears on the logs as well
output = None
for _ in range(10):
output = postgrest.process.stdout.readline()
if output:
break
time.sleep(0.1)

assert "Timed out acquiring connection from connection pool." in output.decode()
output = sorted(postgrest.read_stdout(nlines=2))
assert " 504 " in output[0]
assert "Timed out acquiring connection from connection pool." in output[1]


def test_change_statement_timeout_held_connection(defaultenv, metapostgrest):
Expand Down

0 comments on commit 963416a

Please sign in to comment.