diff options
author | Michał Górny <mgorny@gentoo.org> | 2023-12-26 11:41:16 +0100 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2023-12-26 11:50:22 +0100 |
commit | 300e20ddab67230cc4a6d06e457a9cc22658a66a (patch) | |
tree | cf93705c18b61e63b5a42ac21a0df02243b0c613 /dev-python | |
parent | dev-python/uvicorn: Revert "Bump to 0.25.0" (diff) | |
download | gentoo-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>
Diffstat (limited to 'dev-python')
-rw-r--r-- | dev-python/uvicorn/Manifest | 1 | ||||
-rw-r--r-- | dev-python/uvicorn/files/uvicorn-0.25.0-test.patch | 46 | ||||
-rw-r--r-- | dev-python/uvicorn/uvicorn-0.25.0.ebuild | 77 |
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 +} |