summaryrefslogtreecommitdiff
path: root/dev-python/uvicorn
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-12-26 13:36:16 +0000
committerV3n3RiX <venerix@koprulu.sector>2023-12-26 13:36:16 +0000
commitc25546f65119d2fb9a2f79588fd130d62989eddb (patch)
treeb81b1abf9674c2823ed5d307b8d05c88fe0e2797 /dev-python/uvicorn
parent058e62d5e60f6fc7f010f73f4c1546e979344a0b (diff)
gentoo auto-resync : 26:12:2023 - 13:36:16
Diffstat (limited to 'dev-python/uvicorn')
-rw-r--r--dev-python/uvicorn/Manifest3
-rw-r--r--dev-python/uvicorn/files/uvicorn-0.25.0-test.patch46
-rw-r--r--dev-python/uvicorn/uvicorn-0.25.0.ebuild77
3 files changed, 126 insertions, 0 deletions
diff --git a/dev-python/uvicorn/Manifest b/dev-python/uvicorn/Manifest
index c45c980325c3..02c7b9a83032 100644
--- a/dev-python/uvicorn/Manifest
+++ b/dev-python/uvicorn/Manifest
@@ -1,3 +1,6 @@
+AUX uvicorn-0.25.0-test.patch 1810 BLAKE2B 901fc4cd22bbb70fd7885b4d790a63d3783b287a133c201ef690794234ce89366ca5c9bd8a5caa74aafbe2838ab284654895e7d0e0997c8450de8c2cea557c88 SHA512 f1a516acbaf2d2f379ac77723a357296db111704d0a4d0ad276425415653d75c8545d0b86674aed019a175b2772bec151c5e837662edef30fd9daa4e03582de0
DIST uvicorn-0.24.0.gh.tar.gz 715220 BLAKE2B b71273545ae244544b5336524bf4ad1f386c8bb2b1addc501514833f37376f8a09a1d4dfc2272c3b62555337a20750af827c9a7a4c3bffc6327a9d1809869cfa SHA512 98b58ce17a1f072f36923b1b616f818cbadd091256ce1281a5236268ba2378d212384d9c3390b5903edfda5c692a67935051379e31732df45422595a88c69232
+DIST uvicorn-0.25.0.gh.tar.gz 717386 BLAKE2B f0a472676a732d7807137f157c95574584d882bf9ae8531c4e2c1164ebe9eec2172da62f72f07032ada422b7932f221457686aa22ab6fbceac57685ad91920b8 SHA512 19c1e6438c40ab1b1d30c9c9c84d65f2dc661197adcc6be3d7825223d933d4554ec388323e16452ef0409476766af1ae18bb3252a391099bd2e2bfe2b6c4abb2
EBUILD uvicorn-0.24.0.ebuild 2063 BLAKE2B 410fd9cd15df29b0d62051f6e9af45f9a0b1493614264a1702cc70f4d5ce21750fe555019472266f7b6f8088bc3caf3367a1602b7443096397228d23388b1dab SHA512 c655c8720518c76dedcc89fdc33bfe2895fdd4d3dd47d408b0322456a2ee80febaaac92abd8df08521355971db794d38b57e07e925646318314236cfe5de5d44
+EBUILD uvicorn-0.25.0.ebuild 1810 BLAKE2B a1fb589130a2b2f279c7b77014d2d15ce1d8ab4fdb7d4ba9bf315c5f55a3aeb7cf5bb823fba27430607e876ff1b7bfcbbe38d7e2a64cc28042f8f2b2bf6b5c04 SHA512 fbd165f2445a622708d51756d150ce2cf4e9eac390fea2c5a70dbd9eb1f0bf993527926ad4214f859dde9b5659bf28a200f264c41b446f135af6bd2681b5f483
MISC metadata.xml 451 BLAKE2B af9be617c95128297e3455b503e198e13c373244094f6aa9c80837945c3f9f023f1874efa28d4ffa8b241feb9a4e8c7f3d3534e96966733bd5593bffb90904a5 SHA512 4d76bab5c20f7cad81fa56a28c9be07bf2c2ebc412fc647f073215d437a2550eca247b8419df71d04200d0fdf545520684db0b6f4953e73848f69a4f4ad6931e
diff --git a/dev-python/uvicorn/files/uvicorn-0.25.0-test.patch b/dev-python/uvicorn/files/uvicorn-0.25.0-test.patch
new file mode 100644
index 000000000000..8cd1cc7bb8c4
--- /dev/null
+++ b/dev-python/uvicorn/files/uvicorn-0.25.0-test.patch
@@ -0,0 +1,46 @@
+From 64013e8729afc93880a749974491ab5a90b29deb Mon Sep 17 00:00:00 2001
+From: Marcelo Trylesinski <marcelotryle@gmail.com>
+Date: Tue, 26 Dec 2023 10:28:55 +0100
+Subject: [PATCH] Allow test suite to run without httptools installed
+
+---
+ tests/protocols/test_http.py | 19 +++++++------------
+ 1 file changed, 7 insertions(+), 12 deletions(-)
+
+diff --git a/tests/protocols/test_http.py b/tests/protocols/test_http.py
+index fde4cc70b..ca06b33a6 100644
+--- a/tests/protocols/test_http.py
++++ b/tests/protocols/test_http.py
+@@ -994,25 +994,20 @@ async def test_huge_headers_h11_max_incomplete():
+
+
+ @pytest.mark.anyio
+-@pytest.mark.parametrize(
+- "protocol_cls,close_header",
+- (
+- pytest.param(
+- HttpToolsProtocol, b"connection: close", marks=skip_if_no_httptools
+- ),
+- (H11Protocol, b"Connection: close"),
+- ),
+-)
+-async def test_return_close_header(protocol_cls, close_header: bytes):
++async def test_return_close_header(
++ http_protocol_cls: "Type[HttpToolsProtocol | H11Protocol]"
++):
+ app = Response("Hello, world", media_type="text/plain")
+
+- protocol = get_connected_protocol(app, protocol_cls)
++ protocol = get_connected_protocol(app, http_protocol_cls)
+ protocol.data_received(CONNECTION_CLOSE_REQUEST)
+ await protocol.loop.run_one()
+ assert b"HTTP/1.1 200 OK" in protocol.transport.buffer
+ assert b"content-type: text/plain" in protocol.transport.buffer
+ assert b"content-length: 12" in protocol.transport.buffer
+- assert close_header in protocol.transport.buffer
++ # NOTE: We need to use `.lower()` because H11 implementation doesn't allow Uvicorn
++ # to lowercase them. See: https://github.com/python-hyper/h11/issues/156
++ assert b"connection: close" in protocol.transport.buffer.lower()
+
+
+ @pytest.mark.anyio
diff --git a/dev-python/uvicorn/uvicorn-0.25.0.ebuild b/dev-python/uvicorn/uvicorn-0.25.0.ebuild
new file mode 100644
index 000000000000..a675be713124
--- /dev/null
+++ b/dev-python/uvicorn/uvicorn-0.25.0.ebuild
@@ -0,0 +1,77 @@
+# Copyright 2021-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( pypy3 python3_{10..12} )
+
+inherit distutils-r1 optfeature
+
+DESCRIPTION="Lightning-fast ASGI server implementation"
+HOMEPAGE="
+ https://www.uvicorn.org/
+ https://github.com/encode/uvicorn/
+ https://pypi.org/project/uvicorn/
+"
+# as of 0.21.0, no tests in sdist
+SRC_URI="
+ https://github.com/encode/uvicorn/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="test-rust"
+
+RDEPEND="
+ >=dev-python/asgiref-3.4.0[${PYTHON_USEDEP}]
+ >=dev-python/click-7.0[${PYTHON_USEDEP}]
+ >=dev-python/h11-0.8[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/a2wsgi[${PYTHON_USEDEP}]
+ dev-python/httpx[${PYTHON_USEDEP}]
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/python-dotenv[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ >=dev-python/websockets-10.4[${PYTHON_USEDEP}]
+ dev-python/wsproto[${PYTHON_USEDEP}]
+ test-rust? (
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ dev-python/trustme[${PYTHON_USEDEP}]
+ dev-python/watchfiles[${PYTHON_USEDEP}]
+ )
+ )
+"
+
+distutils_enable_tests pytest
+
+PATCHES=(
+ # https://github.com/encode/uvicorn/pull/2198
+ "${FILESDIR}/${P}-test.patch"
+)
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # too long path for unix socket
+ tests/test_config.py::test_bind_unix_socket_works_with_reload_or_workers
+ )
+ case ${EPYTHON} in
+ pypy3)
+ # TODO
+ EPYTEST_DESELECT+=(
+ tests/middleware/test_logging.py::test_running_log_using_fd
+ )
+ ;;
+ esac
+
+ epytest
+}
+
+pkg_postinst() {
+ optfeature "auto reload on file changes" dev-python/watchfiles
+}