diff mbox series

support/testing: remove hardcoded sleep from python-flask test

Message ID 20240207171513.2673706-1-buildroot@bubu1.eu
State Accepted
Headers show
Series support/testing: remove hardcoded sleep from python-flask test | expand

Commit Message

Marcus Hoffmann Feb. 7, 2024, 5:15 p.m. UTC
Similar to the new fastapi test, instead of waiting for a hard coded
amount of time we can retry every second until the server is available
and abort if after the timeout we still didn't manage to connect.

Signed-off-by: Marcus Hoffmann <buildroot@bubu1.eu>
---
 support/testing/tests/package/test_python_flask.py | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

Comments

Thomas Petazzoni Feb. 11, 2024, 10:12 p.m. UTC | #1
On Wed,  7 Feb 2024 18:15:12 +0100
Marcus Hoffmann via buildroot <buildroot@buildroot.org> wrote:

> Similar to the new fastapi test, instead of waiting for a hard coded
> amount of time we can retry every second until the server is available
> and abort if after the timeout we still didn't manage to connect.
> 
> Signed-off-by: Marcus Hoffmann <buildroot@bubu1.eu>
> ---
>  support/testing/tests/package/test_python_flask.py | 14 +++++++++-----
>  1 file changed, 9 insertions(+), 5 deletions(-)

Applied to master, thanks.

Thomas
diff mbox series

Patch

diff --git a/support/testing/tests/package/test_python_flask.py b/support/testing/tests/package/test_python_flask.py
index 9d8587e918..32d9da34a5 100644
--- a/support/testing/tests/package/test_python_flask.py
+++ b/support/testing/tests/package/test_python_flask.py
@@ -21,9 +21,13 @@  class TestPythonPy3Flask(TestPythonPackageBase):
         _, exit_code = self.emulator.run(cmd, timeout=self.timeout)
 
         # Give enough time for the flask server to start up
-        time.sleep(30)
+        for attempt in range(30):
+            time.sleep(1)
 
-        cmd = "wget -q -O - http://127.0.0.1:5000/"
-        output, exit_code = self.emulator.run(cmd, timeout=self.timeout)
-        self.assertEqual(exit_code, 0)
-        self.assertEqual(output[0], "Hello, World!")
+            cmd = "wget -q -O - http://127.0.0.1:5000/"
+            output, exit_code = self.emulator.run(cmd, timeout=self.timeout)
+            if exit_code == 0:
+                self.assertEqual(output[0], 'Hello, World!')
+                break
+        else:
+            self.assertTrue(False, "Timeout while waiting for flask server")