summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dev-python/hyper-h2/files/hyper-h2-3.2.0-failed-healthcheck.patch74
-rw-r--r--dev-python/hyper-h2/hyper-h2-3.2.0.ebuild29
-rw-r--r--dev-python/hyper-h2/hyper-h2-4.0.0.ebuild23
3 files changed, 118 insertions, 8 deletions
diff --git a/dev-python/hyper-h2/files/hyper-h2-3.2.0-failed-healthcheck.patch b/dev-python/hyper-h2/files/hyper-h2-3.2.0-failed-healthcheck.patch
new file mode 100644
index 000000000000..04adc2748c21
--- /dev/null
+++ b/dev-python/hyper-h2/files/hyper-h2-3.2.0-failed-healthcheck.patch
@@ -0,0 +1,74 @@
+diff --git a/test/test_basic_logic.py b/test/test_basic_logic.py
+index fb54fe50..8c8f3b7d 100644
+--- a/test/test_basic_logic.py
++++ b/test/test_basic_logic.py
+@@ -21,7 +21,7 @@
+
+ from . import helpers
+
+-from hypothesis import given
++from hypothesis import given, settings, HealthCheck
+ from hypothesis.strategies import integers
+
+
+@@ -790,6 +790,7 @@ def test_headers_are_lowercase(self, frame_factory):
+ assert c.data_to_send() == expected_frame.serialize()
+
+ @given(frame_size=integers(min_value=2**14, max_value=(2**24 - 1)))
++ @settings(suppress_health_check=[HealthCheck.function_scoped_fixture])
+ def test_changing_max_frame_size(self, frame_factory, frame_size):
+ """
+ When the user changes the max frame size and the change is ACKed, the
+diff --git a/test/test_flow_control_window.py b/test/test_flow_control_window.py
+index 24b345aa..7a445af1 100644
+--- a/test/test_flow_control_window.py
++++ b/test/test_flow_control_window.py
+@@ -7,7 +7,7 @@
+ """
+ import pytest
+
+-from hypothesis import given
++from hypothesis import given, settings, HealthCheck
+ from hypothesis.strategies import integers
+
+ import h2.config
+@@ -715,6 +715,7 @@ def _setup_connection_and_send_headers(self, frame_factory):
+ return c
+
+ @given(stream_id=integers(max_value=0))
++ @settings(suppress_health_check=[HealthCheck.function_scoped_fixture])
+ def test_must_acknowledge_for_stream(self, frame_factory, stream_id):
+ """
+ Flow control acknowledgements must be done on a stream ID that is
+@@ -740,6 +741,7 @@ def test_must_acknowledge_for_stream(self, frame_factory, stream_id):
+ )
+
+ @given(size=integers(max_value=-1))
++ @settings(suppress_health_check=[HealthCheck.function_scoped_fixture])
+ def test_cannot_acknowledge_less_than_zero(self, frame_factory, size):
+ """
+ The user must acknowledge at least 0 bytes.
+@@ -837,6 +839,7 @@ def test_acknowledging_streams_we_never_saw(self, frame_factory):
+ c.acknowledge_received_data(2048, stream_id=101)
+
+ @given(integers(min_value=1025, max_value=DEFAULT_FLOW_WINDOW))
++ @settings(suppress_health_check=[HealthCheck.function_scoped_fixture])
+ def test_acknowledging_1024_bytes_when_empty_increments(self,
+ frame_factory,
+ increment):
+@@ -873,6 +876,7 @@ def test_acknowledging_1024_bytes_when_empty_increments(self,
+ # This test needs to use a lower cap, because otherwise the algo will
+ # increment the stream window anyway.
+ @given(integers(min_value=1025, max_value=(DEFAULT_FLOW_WINDOW // 4) - 1))
++ @settings(suppress_health_check=[HealthCheck.function_scoped_fixture])
+ def test_connection_only_empty(self, frame_factory, increment):
+ """
+ If the connection flow control window is empty, but the stream flow
+@@ -916,5 +920,6 @@ def test_connection_only_empty(self, frame_factory, increment):
+ assert c.data_to_send() == expected_data
+
+ @given(integers(min_value=1025, max_value=DEFAULT_FLOW_WINDOW))
++ @settings(suppress_health_check=[HealthCheck.function_scoped_fixture])
+ def test_mixing_update_forms(self, frame_factory, increment):
+ """
+ If the user mixes ackowledging data with manually incrementing windows,
diff --git a/dev-python/hyper-h2/hyper-h2-3.2.0.ebuild b/dev-python/hyper-h2/hyper-h2-3.2.0.ebuild
index 50176089cdd7..819953993d97 100644
--- a/dev-python/hyper-h2/hyper-h2-3.2.0.ebuild
+++ b/dev-python/hyper-h2/hyper-h2-3.2.0.ebuild
@@ -2,7 +2,7 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-PYTHON_COMPAT=( python3_{7,8,9} )
+PYTHON_COMPAT=( python3_{7..10} )
inherit distutils-r1
@@ -13,8 +13,6 @@ SRC_URI="https://github.com/python-hyper/${PN}/archive/v${PV}.tar.gz -> ${P}.tar
LICENSE="MIT"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
RDEPEND="
>=dev-python/hyperframe-5.2.0[${PYTHON_USEDEP}]
@@ -22,14 +20,31 @@ RDEPEND="
>=dev-python/hpack-3.0.0[${PYTHON_USEDEP}]
<dev-python/hpack-4.0.0[${PYTHON_USEDEP}]
"
-DEPEND="${RDEPEND}
+BDEPEND="
test? (
dev-python/hypothesis[${PYTHON_USEDEP}]
- dev-python/pytest[${PYTHON_USEDEP}]
)
"
+distutils_enable_tests pytest
+
+PATCHES=(
+ # From https://github.com/python-hyper/h2/pull/1248
+ # Disables some failing healthchecks
+ "${FILESDIR}/${P}-failed-healthcheck.patch"
+)
+
python_test() {
- pytest -vv --hypothesis-profile=travis test ||
- die "Tests fail with ${EPYTHON}"
+ local deselect=()
+ [[ ${EPYTHON} == python3.10 ]] && deselect+=(
+ # these rely on fixed string repr() and fail because enum repr
+ # changed in py3.10
+ test/test_basic_logic.py::TestBasicServer::test_stream_repr
+ test/test_events.py::TestEventReprs::test_remotesettingschanged_repr
+ test/test_events.py::TestEventReprs::test_streamreset_repr
+ test/test_events.py::TestEventReprs::test_settingsacknowledged_repr
+ test/test_events.py::TestEventReprs::test_connectionterminated_repr
+ )
+
+ epytest --hypothesis-profile=travis ${deselect[@]/#/--deselect }
}
diff --git a/dev-python/hyper-h2/hyper-h2-4.0.0.ebuild b/dev-python/hyper-h2/hyper-h2-4.0.0.ebuild
index 9698bdee39b8..a133fd58b9c7 100644
--- a/dev-python/hyper-h2/hyper-h2-4.0.0.ebuild
+++ b/dev-python/hyper-h2/hyper-h2-4.0.0.ebuild
@@ -2,7 +2,7 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-PYTHON_COMPAT=( python3_{7,8,9} )
+PYTHON_COMPAT=( python3_{7..10} )
inherit distutils-r1
@@ -27,3 +27,24 @@ BDEPEND="
"
distutils_enable_tests pytest
+
+PATCHES=(
+ # From https://github.com/python-hyper/h2/pull/1248
+ # Disables some failing healthchecks
+ "${FILESDIR}/${PN}-3.2.0-failed-healthcheck.patch"
+)
+
+python_test() {
+ local deselect=()
+ [[ ${EPYTHON} == python3.10 ]] && deselect+=(
+ # these rely on fixed string repr() and fail because enum repr
+ # changed in py3.10
+ test/test_basic_logic.py::TestBasicServer::test_stream_repr
+ test/test_events.py::TestEventReprs::test_remotesettingschanged_repr
+ test/test_events.py::TestEventReprs::test_streamreset_repr
+ test/test_events.py::TestEventReprs::test_settingsacknowledged_repr
+ test/test_events.py::TestEventReprs::test_connectionterminated_repr
+ )
+
+ epytest ${deselect[@]/#/--deselect }
+}