summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2023-12-26 11:41:16 +0100
committerMichał Górny <mgorny@gentoo.org>2023-12-26 11:50:22 +0100
commit300e20ddab67230cc4a6d06e457a9cc22658a66a (patch)
treecf93705c18b61e63b5a42ac21a0df02243b0c613
parentdev-python/uvicorn: Revert "Bump to 0.25.0" (diff)
downloadgentoo-300e20ddab67230cc4a6d06e457a9cc22658a66a.tar.gz
gentoo-300e20ddab67230cc4a6d06e457a9cc22658a66a.tar.bz2
gentoo-300e20ddab67230cc4a6d06e457a9cc22658a66a.zip
dev-python/uvicorn: Bump to 0.25.0
Signed-off-by: Michał Górny <mgorny@gentoo.org>
-rw-r--r--dev-python/uvicorn/Manifest1
-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, 124 insertions, 0 deletions
diff --git a/dev-python/uvicorn/Manifest b/dev-python/uvicorn/Manifest
index 025f5112a687..80b466c9ff71 100644
--- a/dev-python/uvicorn/Manifest
+++ b/dev-python/uvicorn/Manifest
@@ -1 +1,2 @@
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
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
+}