From fcab7ea03b74626e388d46d6def03e7f50815a6a Mon Sep 17 00:00:00 2001 From: Peter Grzybowski Date: Sun, 24 May 2026 15:01:27 +0200 Subject: [PATCH 1/2] test: test_in_poor: retry at the end of mender-connect reconnect Ticket: QA-1625 Signed-off-by: Peter Grzybowski --- tests/tests/test_mender_connect.py | 41 ++++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 8 deletions(-) diff --git a/tests/tests/test_mender_connect.py b/tests/tests/test_mender_connect.py index 329afb8dc..fbecde620 100644 --- a/tests/tests/test_mender_connect.py +++ b/tests/tests/test_mender_connect.py @@ -239,14 +239,39 @@ def detect_shell_prompt(shell): time.sleep(128) # mender-connect should have "healed" now and be able to start a new shell - with docker_env.devconnect.get_websocket() as ws: - shell = proto_shell.ProtoShell(ws) - body = shell.startShell() - assert shell.protomsg.props["status"] == protomsg.PROP_STATUS_NORMAL - assert body == proto_shell.MSG_BODY_SHELL_STARTED - - detect_shell_prompt(shell) - is_shell_working(shell) + retries = 64 + passed = False + status_ok = False + body_ok = False + for i in range(retries): + try: + with docker_env.devconnect.get_websocket() as ws: + shell = proto_shell.ProtoShell(ws) + body = shell.startShell() + status_ok = False + if shell.protomsg.props["status"] == protomsg.PROP_STATUS_NORMAL: + status_ok = True + else: + passed = False + time.sleep(4) + continue + body_ok = False + if body == proto_shell.MSG_BODY_SHELL_STARTED: + body_ok = True + else: + passed = False + time.sleep(4) + continue + detect_shell_prompt(shell) + is_shell_working(shell) + passed = True + break + except: + time.sleep(4) + pass + assert ( + passed and body_ok and status_ok + ), "shell did not recover after network failure" @flaky(max_runs=3) def test_session_recording(self, docker_env): From ca897f2bdb1b97bbb127aac328ba8424d75828d3 Mon Sep 17 00:00:00 2001 From: Peter Grzybowski Date: Fri, 29 May 2026 12:31:36 +0200 Subject: [PATCH 2/2] chore: set test_in_poor to @flaky(max_runs=5, min_passes=3) Ticket: QA-1625 Signed-off-by: Peter Grzybowski --- tests/tests/test_mender_connect.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/tests/test_mender_connect.py b/tests/tests/test_mender_connect.py index fbecde620..dba947fb0 100644 --- a/tests/tests/test_mender_connect.py +++ b/tests/tests/test_mender_connect.py @@ -188,6 +188,7 @@ def test_bogus_shell_message(self, docker_env): assert prot.protoType == proto_shell.PROTO_TYPE_SHELL assert prot.typ == "bogusmessage" + @flaky(max_runs=5, min_passes=3) def test_in_poor_network_environment(self, docker_env): self.assert_env(docker_env)