From 7d7ca29e3d502c3e248bf49572501c8431c39aee Mon Sep 17 00:00:00 2001 From: Itamar Turner-Trauring Date: Tue, 5 Sep 2023 10:14:10 -0400 Subject: [PATCH] Work around Hypothesis complaint about differing executors due to subclassing. See https://hypothesis.readthedocs.io/en/latest/settings.html#health-checks --- newsfragments/4063.minor | 0 src/allmydata/test/test_storage_http.py | 20 ++++++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 newsfragments/4063.minor diff --git a/newsfragments/4063.minor b/newsfragments/4063.minor new file mode 100644 index 000000000..e69de29bb diff --git a/src/allmydata/test/test_storage_http.py b/src/allmydata/test/test_storage_http.py index bc266e824..eaed5f07c 100644 --- a/src/allmydata/test/test_storage_http.py +++ b/src/allmydata/test/test_storage_http.py @@ -1673,10 +1673,12 @@ class SharedImmutableMutableTestsMixin: # semantically valid under HTTP. check_bad_range("bytes=0-") - @given(data_length=st.integers(min_value=1, max_value=300000)) - def test_read_with_no_range(self, data_length): + def _read_with_no_range_test(self, data_length): """ A read with no range returns the whole mutable/immutable. + + Actual test is defined in subclasses, to fix complaints from Hypothesis + about the method having different executors. """ storage_index, uploaded_data, _ = self.upload(1, data_length) response = self.http.result_of_with_flush( @@ -1770,6 +1772,13 @@ class ImmutableSharedTests(SharedImmutableMutableTestsMixin, SyncTestCase): def get_leases(self, storage_index): return self.http.storage_server.get_leases(storage_index) + @given(data_length=st.integers(min_value=1, max_value=300000)) + def test_read_with_no_range(self, data_length): + """ + A read with no range returns the whole immutable. + """ + return self._read_with_no_range_test(data_length) + class MutableSharedTests(SharedImmutableMutableTestsMixin, SyncTestCase): """Shared tests, running on mutables.""" @@ -1809,3 +1818,10 @@ class MutableSharedTests(SharedImmutableMutableTestsMixin, SyncTestCase): def get_leases(self, storage_index): return self.http.storage_server.get_slot_leases(storage_index) + + @given(data_length=st.integers(min_value=1, max_value=300000)) + def test_read_with_no_range(self, data_length): + """ + A read with no range returns the whole mutable. + """ + return self._read_with_no_range_test(data_length)