Source: python-fakeredis Version: 1.4.1-1 Severity: important Forwarded: https://github.com/jamesls/fakeredis/issues/295 X-Debbugs-CC: debian...@lists.debian.org User: debian...@lists.debian.org Usertags: fails-always
Hi Maintainer Since the upload of python-fakeredis/1.4.1-1, its autopkgtests fail on 32-bit architectures[1][2]. I've copied what I hope is the relevant part of the log below. The autopkgtests did pass previously in version 1.2.1-1, but only because this test was skipped. test_fakeredis_hypothesis.py::TestList::test SKIPPED [ 99%] So I've usertagged this bug 'fails-always' instead of 'regression'. As per upstream's comments in the forwarded bug, perhaps we should not be running the hypothesis tests on any architecture. > The hypothesis tests have always been somewhat brittle because > they probe undocumented corner-case behaviour that varies even > between patch releases of redis, and they're only really expected to > pass on whatever Redis server is deployed on Travis. Regards Graham [1] https://ci.debian.net/packages/p/python-fakeredis/testing/armhf/ [2] https://ci.debian.net/packages/p/python-fakeredis/testing/i386/ =================================== FAILURES =================================== ________________________________ TestList.test _________________________________ self = <test_hypothesis.TestList object at 0xf5fb19b8> @pytest.mark.slow def test(self): class Machine(CommonMachine): create_command_strategy = self.create_command_strategy command_strategy = self.command_strategy > hypothesis.stateful.run_state_machine_as_test(Machine) test/test_hypothesis.py:468: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3/dist-packages/hypothesis/stateful.py:75: in run_state_machine_as_test def run_state_machine_as_test(state_machine_factory, *, settings=None): /usr/lib/python3/dist-packages/hypothesis/internal/reflection.py:654: in accept return func(*bound.args, **bound.kwargs) /usr/lib/python3/dist-packages/hypothesis/stateful.py:200: in run_state_machine_as_test run_state_machine(state_machine_factory) /usr/lib/python3/dist-packages/hypothesis/stateful.py:92: in run_state_machine @given(st.data()) test/test_hypothesis.py:454: in one_command self._compare(command) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Machine({}), command = Command('lindex', b'', 2147483648) def _compare(self, command): fake_result, fake_exc = self._evaluate(self.fake, command) real_result, real_exc = self._evaluate(self.real, command) if fake_exc is not None and real_exc is None: raise fake_exc elif real_exc is not None and fake_exc is None: > assert real_exc == fake_exc, "Expected exception {} not > raised".format(real_exc) E AssertionError: Expected exception value is out of range not raised E assert ResponseError...out of range') == None E +ResponseError('value is out of range') E -None test/test_hypothesis.py:412: AssertionError ----------------------------- Captured stdout call ----------------------------- Falsifying example: state = Machine() state.init_attrs(attrs={'fields': [b'', b'\x00'], 'keys': [b'', b'\x00'], 'scores': [0.0, 1.0], 'values': [b'', b'\x00']}) state.init_data(commands=[Command('rpush', b'', b'')]) state.one_command(command=Command('lindex', b'', 2147483648)) state.teardown()