64 lines
2.1 KiB
Bash
64 lines
2.1 KiB
Bash
# Copyright 1999-2021 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=7
|
|
|
|
PYTHON_COMPAT=( python3_{7..9} )
|
|
|
|
inherit distutils-r1
|
|
|
|
DESCRIPTION="A minimal low-level HTTP client"
|
|
HOMEPAGE="https://www.encode.io/httpcore/"
|
|
SRC_URI="https://github.com/encode/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
|
|
|
LICENSE="BSD"
|
|
SLOT="0"
|
|
KEYWORDS="amd64 arm arm64 ppc ppc64 sparc x86"
|
|
|
|
RDEPEND="
|
|
<dev-python/h11-0.13[${PYTHON_USEDEP}]
|
|
<dev-python/h2-5[${PYTHON_USEDEP}]
|
|
=dev-python/sniffio-1*[${PYTHON_USEDEP}]
|
|
"
|
|
BDEPEND="
|
|
test? (
|
|
dev-python/pytest-asyncio[${PYTHON_USEDEP}]
|
|
dev-python/trustme[${PYTHON_USEDEP}]
|
|
)
|
|
"
|
|
|
|
distutils_enable_tests pytest
|
|
|
|
python_prepare_all() {
|
|
# anyio and trio are not in the tree
|
|
sed -i 's/^@pytest.mark.\(anyio\|trio\)/@pytest.mark.skip/' \
|
|
tests/async_tests/test_*.py || die
|
|
sed -i '/^import trio/d' tests/utils.py || die
|
|
# pproxy is not in the tree, the associated fixture
|
|
# must be disabled to prevent errors during test setup
|
|
sed -i 's/def proxy_server().*/&\n pytest.skip()/' \
|
|
tests/conftest.py || die
|
|
distutils-r1_python_prepare_all
|
|
}
|
|
|
|
python_test() {
|
|
local skipped_tests=(
|
|
# Require Internet access or hypercorn (not in the tree)
|
|
tests/test_threadsafety.py::test_threadsafe_basic
|
|
tests/sync_tests/test_interfaces.py::test_http_request
|
|
tests/sync_tests/test_interfaces.py::test_https_request
|
|
tests/sync_tests/test_interfaces.py::test_http2_request
|
|
tests/sync_tests/test_interfaces.py::test_closing_http_request
|
|
tests/sync_tests/test_interfaces.py::test_connection_pool_get_connection_info
|
|
tests/sync_tests/test_interfaces.py::test_max_keepalive_connections_handled_correctly
|
|
tests/sync_tests/test_interfaces.py::test_explicit_backend_name
|
|
tests/sync_tests/test_interfaces.py::test_connection_timeout_tcp
|
|
tests/sync_tests/test_interfaces.py::test_broken_socket_detection_many_open_files
|
|
tests/sync_tests/test_retries.py::test_no_retries
|
|
tests/sync_tests/test_retries.py::test_retries_exceeded
|
|
tests/sync_tests/test_retries.py::test_retries_enabled
|
|
# Require hypercorn
|
|
tests/sync_tests/test_interfaces.py::test_connection_timeout_uds
|
|
)
|
|
epytest ${skipped_tests[@]/#/--deselect }
|
|
}
|