All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] package/python-waitress: new package
@ 2024-02-07 17:18 Marcus Hoffmann via buildroot
  2025-02-05 10:16 ` Thomas Petazzoni via buildroot
  0 siblings, 1 reply; 2+ messages in thread
From: Marcus Hoffmann via buildroot @ 2024-02-07 17:18 UTC (permalink / raw)
  To: buildroot; +Cc: Asaf Kahlon, James Hilliard, Marcus Hoffmann, Thomas Petazzoni

The test runs the flask sample app through the waitress wsgi server
instead of the flask development server.

Signed-off-by: Marcus Hoffmann <buildroot@bubu1.eu>
---
 package/Config.in                             |  1 +
 package/python-waitress/Config.in             | 11 ++++++
 package/python-waitress/python-waitress.hash  |  5 +++
 package/python-waitress/python-waitress.mk    | 14 ++++++++
 .../tests/package/test_python_waitress.py     | 34 +++++++++++++++++++
 5 files changed, 65 insertions(+)
 create mode 100644 package/python-waitress/Config.in
 create mode 100644 package/python-waitress/python-waitress.hash
 create mode 100644 package/python-waitress/python-waitress.mk
 create mode 100644 support/testing/tests/package/test_python_waitress.py

diff --git a/package/Config.in b/package/Config.in
index 97f590e2b7..bf8c325e99 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1406,6 +1406,7 @@ menu "External python modules"
 	source "package/python-validators/Config.in"
 	source "package/python-versiontools/Config.in"
 	source "package/python-visitor/Config.in"
+	source "package/python-waitress/Config.in"
 	source "package/python-watchdog/Config.in"
 	source "package/python-wcwidth/Config.in"
 	source "package/python-weasyprint/Config.in"
diff --git a/package/python-waitress/Config.in b/package/python-waitress/Config.in
new file mode 100644
index 0000000000..7d8c73a650
--- /dev/null
+++ b/package/python-waitress/Config.in
@@ -0,0 +1,11 @@
+config BR2_PACKAGE_PYTHON_WAITRESS
+	bool "python-waitress"
+	help
+	  Waitress WSGI server.
+
+	  Waitress is a production-quality pure-Python WSGI server
+	  with very acceptable performance. It has no dependencies
+	  except ones which live in the Python standard library.
+	  It supports HTTP/1.0 and HTTP/1.1.
+
+	  https://github.com/Pylons/waitress
diff --git a/package/python-waitress/python-waitress.hash b/package/python-waitress/python-waitress.hash
new file mode 100644
index 0000000000..c1663a351a
--- /dev/null
+++ b/package/python-waitress/python-waitress.hash
@@ -0,0 +1,5 @@
+# md5, sha256 from https://pypi.org/pypi/waitress/json
+md5  b8c671ed131b84a0099493f445c98014  waitress-3.0.0.tar.gz
+sha256  005da479b04134cdd9dd602d1ee7c49d79de0537610d653674cc6cbde222b8a1  waitress-3.0.0.tar.gz
+# Locally computed sha256 checksums
+sha256  3e671db11df687516cc1db5b3d65e4aa383eaca3c20cea3faf53a0f7335d0a3c  LICENSE.txt
diff --git a/package/python-waitress/python-waitress.mk b/package/python-waitress/python-waitress.mk
new file mode 100644
index 0000000000..c1618817dc
--- /dev/null
+++ b/package/python-waitress/python-waitress.mk
@@ -0,0 +1,14 @@
+################################################################################
+#
+# python-waitress
+#
+################################################################################
+
+PYTHON_WAITRESS_VERSION = 3.0.0
+PYTHON_WAITRESS_SOURCE = waitress-$(PYTHON_WAITRESS_VERSION).tar.gz
+PYTHON_WAITRESS_SITE = https://files.pythonhosted.org/packages/70/34/cb77e5249c433eb177a11ab7425056b32d3b57855377fa1e38b397412859
+PYTHON_WAITRESS_SETUP_TYPE = setuptools
+PYTHON_WAITRESS_LICENSE = ZPL-2.1
+PYTHON_WAITRESS_LICENSE_FILES = LICENSE.txt
+
+$(eval $(python-package))
diff --git a/support/testing/tests/package/test_python_waitress.py b/support/testing/tests/package/test_python_waitress.py
new file mode 100644
index 0000000000..46f04109c0
--- /dev/null
+++ b/support/testing/tests/package/test_python_waitress.py
@@ -0,0 +1,34 @@
+import time
+
+from tests.package.test_python import TestPythonPackageBase
+
+
+class TestPythonWaitress(TestPythonPackageBase):
+    __test__ = True
+    config = TestPythonPackageBase.config + \
+        """
+        BR2_PACKAGE_PYTHON3=y
+        BR2_PACKAGE_PYTHON_FLASK=y
+        BR2_PACKAGE_PYTHON_WAITRESS=y
+        """
+
+    sample_scripts = ["tests/package/sample_python_flask.py"]
+
+    def test_run(self):
+        self.login()
+        self.check_sample_scripts_exist()
+        cmd = self.interpreter + " -m waitress sample_python_flask:app > /dev/null 2>&1 &"
+        # give some time to setup the server
+        _, exit = self.emulator.run(cmd, timeout=self.timeout)
+
+        # Give enough time for the uvicorn server to start up
+        for attempt in range(30):
+            time.sleep(1)
+
+            cmd = "wget -q -O - http://127.0.0.1:8080/"
+            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 waitress server")
-- 
2.43.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [Buildroot] [PATCH] package/python-waitress: new package
  2024-02-07 17:18 [Buildroot] [PATCH] package/python-waitress: new package Marcus Hoffmann via buildroot
@ 2025-02-05 10:16 ` Thomas Petazzoni via buildroot
  0 siblings, 0 replies; 2+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-02-05 10:16 UTC (permalink / raw)
  To: Marcus Hoffmann via buildroot
  Cc: Marcus Hoffmann, Asaf Kahlon, James Hilliard

Hello,

On Wed,  7 Feb 2024 18:18:27 +0100
Marcus Hoffmann via buildroot <buildroot@buildroot.org> wrote:

> The test runs the flask sample app through the waitress wsgi server
> instead of the flask development server.
> 
> Signed-off-by: Marcus Hoffmann <buildroot@bubu1.eu>
> ---
>  package/Config.in                             |  1 +
>  package/python-waitress/Config.in             | 11 ++++++
>  package/python-waitress/python-waitress.hash  |  5 +++
>  package/python-waitress/python-waitress.mk    | 14 ++++++++
>  .../tests/package/test_python_waitress.py     | 34 +++++++++++++++++++
>  5 files changed, 65 insertions(+)
>  create mode 100644 package/python-waitress/Config.in
>  create mode 100644 package/python-waitress/python-waitress.hash
>  create mode 100644 package/python-waitress/python-waitress.mk
>  create mode 100644 support/testing/tests/package/test_python_waitress.py

Sorry for the huge delay, applied! You had forgotten to update the
DEVELOPERS file with the new package and test.

Thanks for having added a test together with the package BTW!

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2025-02-05 10:16 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-07 17:18 [Buildroot] [PATCH] package/python-waitress: new package Marcus Hoffmann via buildroot
2025-02-05 10:16 ` Thomas Petazzoni via buildroot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.