Control: reopen -1

Hi,

On 21-05-2025 22:39, Debian Bug Tracking System wrote:
  python-fakeredis (2.29.0-3) unstable; urgency=medium
  .
    * Address autopkgtest regression issues:
      - Require Redis >= 8.x and python3-mock to run the latest autopkgtests.
      - Disable the "test_time" test due to an incompatibility with the new
        version of Mock and mock_use_standalone_module.
        <https://github.com/pytest-dev/pytest-mock/issues/70>
      (Closes: #1105992)


It looks like this wasn't enough. I triggered tests in unstable and only amd64, arm64 and armhf passed. Failures are not the same across the architectures. Examples (i386 and s390x) below.

Paul

https://ci.debian.net/packages/p/python-fakeredis/unstable/i386/60917905/

180s =================================== FAILURES =================================== 180s _______________ test_hgetex_expiration_configs[FakeStrictRedis] ________________
180s
180s r = <fakeredis._connection.FakeStrictRedis(<redis.connection.ConnectionPool(<fakeredis._connection.FakeConnection(server=<fakeredis._server.FakeServer object at 0xf540b308>,db=2)>)>)>
180s
180s     def test_hgetex_expiration_configs(r):
180s         r.delete("test:hash")
180s r.hset("test:hash", "foo", "bar", mapping={"1": 1, "3": "three", "4": b"four"})
180s         test_keys = ["foo", "1", "4"]
180s
180s # test get with multiple fields with expiration set through 'ex' 180s assert r.hgetex("test:hash", *test_keys, ex=10) == [b"bar", b"1", b"four"]
180s         ttls = r.httl("test:hash", *test_keys)
180s         for ttl in ttls:
180s             assert pytest.approx(ttl, 1) == 10
180s
180s # test get with multiple fields removing expiration settings with 'persist'
180s         assert r.hgetex("test:hash", *test_keys, persist=True) == [
180s             b"bar",
180s             b"1",
180s             b"four",
180s         ]
180s         assert r.httl("test:hash", *test_keys) == [-1, -1, -1]
180s
180s # test get with multiple fields with expiration set through 'px' 180s assert r.hgetex("test:hash", *test_keys, px=6000) == [b"bar", b"1", b"four"]
180s         ttls = r.httl("test:hash", *test_keys)
180s         for ttl in ttls:
180s >           assert pytest.approx(ttl) == 6
180s E           assert 5 ± 5.0e-06 == 6
180s E
180s E             comparison failed
180s E             Obtained: 6
180s E             Expected: 5 ± 5.0e-06
180s
180s test/test_mixins/test_hash_expire_redispy6.py:68: AssertionError


https://ci.debian.net/packages/p/python-fakeredis/unstable/s390x/60917908/

345s ____________________________ TestZSetNoScores.test _____________________________
345s
345s self = <test.test_hypothesis.test_zset.TestZSetNoScores object at 0x3ffb9a9e710>
345s
345s     @pytest.mark.slow
345s     def test(self):
345s         class Machine(CommonMachine):
345s             create_command_strategy = self.create_command_strategy
345s             command_strategy = self.command_strategy
345s             if server_type == "redis":
345s command_strategy = command_strategy | self.command_strategy_redis_only
345s             if server_type == "redis" and redis_ver >= (7,):
345s command_strategy = command_strategy | self.command_strategy_redis7
345s
345s # hypothesis.settings.register_profile("debug", max_examples=10, verbosity=hypothesis.Verbosity.debug)
345s         # hypothesis.settings.load_profile("debug")
345s >       hypothesis.stateful.run_state_machine_as_test(Machine)
345s
345s test/test_hypothesis/base.py:344:
345s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 345s /usr/lib/python3/dist-packages/hypothesis/stateful.py:261: in run_state_machine_as_test
345s     state_machine_test(state_machine_factory)
345s /usr/lib/python3/dist-packages/hypothesis/stateful.py:115: in run_state_machine
345s     @given(st.data())
345s test/test_hypothesis/base.py:321: in one_command
345s     self._compare(command)
345s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
345s
345s self = Machine({})
345s command = Command('zrangebylex', b'A', b'-', b'+', 'limit', -1, 1)
345s
345s     def _compare(self, command):
345s         fake_result, fake_exc = self._evaluate(self.fake, command)
345s         real_result, real_exc = self._evaluate(self.real, command)
345s
345s         if fake_exc is not None and real_exc is None:
345s print(f"{fake_exc} raised on only on fake when running {command}", file=sys.stderr)
345s             raise fake_exc
345s         elif real_exc is not None and fake_exc is None:
345s assert real_exc == fake_exc, f"Expected exception `{real_exc}` not raised when running {command}" 345s elif real_exc is None and isinstance(real_result, list) and command.args and command.args[0].lower() == "exec":
345s             assert fake_result is not None
345s             # Transactions need to use the normalize functions of the
345s             # component commands.
345s             assert len(self.transaction_normalize) == len(real_result)
345s             assert len(self.transaction_normalize) == len(fake_result)
345s for n, r, f in zip(self.transaction_normalize, real_result, fake_result):
345s                 assert n(f) == n(r)
345s             self.transaction_normalize = []
345s         elif isinstance(fake_result, list):
345s >           assert len(fake_result) == len(real_result), (
345s f"Discrepancy when running command {command}, fake({fake_result}) != real({real_result})",
345s             )
345s E AssertionError: ("Discrepancy when running command Command('zrangebylex', b'A', b'-', b'+', 'limit', -1, 1), fake([]) != real([b'A'])",)
345s E           Falsifying example:
345s E           state = Machine()
345s E           state.init_attrs(attrs={'keys': [b'A', b'B'],
345s E            'fields': [b'A', b'AA'],
345s E            'values': [b'A', b'0'],
345s E            'scores': [0.0, 1.0]})
345s E state.init_data(commands=[functools.partial(test.test_hypothesis.base.Command)(
345s E                'zadd',
345s E                b'B',
345s E                [(0, b'A'), (0, b'A')],
345s E            )])
345s E state.one_command(command=functools.partial(test.test_hypothesis.base.Command)(
345s E               'zadd',
345s E               b'A',
345s E               None,
345s E               None,
345s E               None,
345s E               None,
345s E               [],
345s E           ))
345s E state.one_command(command=functools.partial(test.test_hypothesis.base.Command)(
345s E               'zadd',
345s E               b'A',
345s E               None,
345s E               None,
345s E               None,
345s E               None,
345s E               [],
345s E           ))
345s E state.one_command(command=functools.partial(test.test_hypothesis.base.Command)(
345s E               'zadd',
345s E               b'A',
345s E               None,
345s E               None,
345s E               None,
345s E               None,
345s E               [],
345s E           ))
345s E state.one_command(command=functools.partial(test.test_hypothesis.base.Command)(
345s E               'zadd',
345s E               b'A',
345s E               None,
345s E               None,
345s E               None,
345s E               None,
345s E               [],
345s E           ))
345s E state.one_command(command=functools.partial(test.test_hypothesis.base.Command)(
345s E               'zadd',
345s E               b'A',
345s E               None,
345s E               None,
345s E               None,
345s E               None,
345s E               [],
345s E           ))
345s E state.one_command(command=functools.partial(test.test_hypothesis.base.Command)(
345s E               'zadd',
345s E               b'A',
345s E               None,
345s E               None,
345s E               None,
345s E               None,
345s E               [],
345s E           ))
345s E state.one_command(command=functools.partial(test.test_hypothesis.base.Command)(
345s E               'zadd',
345s E               b'A',
345s E               None,
345s E               None,
345s E               None,
345s E               None,
345s E               [],
345s E           ))
345s E state.one_command(command=functools.partial(test.test_hypothesis.base.Command)(
345s E               'zadd',
345s E               b'A',
345s E               None,
345s E               None,
345s E               None,
345s E               None,
345s E               [],
345s E           ))
345s E state.one_command(command=functools.partial(test.test_hypothesis.base.Command)(
345s E               'zadd',
345s E               b'A',
345s E               None,
345s E               None,
345s E               None,
345s E               None,
345s E               [],
345s E           ))
345s E state.one_command(command=functools.partial(test.test_hypothesis.base.Command)(
345s E               'zadd',
345s E               b'A',
345s E               None,
345s E               None,
345s E               None,
345s E               None,
345s E               [],
345s E           ))
345s E state.one_command(command=functools.partial(test.test_hypothesis.base.Command)(
345s E               'sort',
345s E               b'B',
345s E               None,
345s E               None,
345s E               None,
345s E           ))
345s E state.one_command(command=functools.partial(test.test_hypothesis.base.Command)(
345s E               'zadd',
345s E               b'A',
345s E               None,
345s E               None,
345s E               None,
345s E               None,
345s E               [],
345s E           ))
345s E state.one_command(command=functools.partial(test.test_hypothesis.base.Command)(
345s E               'zadd',
345s E               b'A',
345s E               None,
345s E               None,
345s E               None,
345s E               None,
345s E               [],
345s E           ))
345s E state.one_command(command=functools.partial(test.test_hypothesis.base.Command)(
345s E               'zadd',
345s E               b'A',
345s E               None,
345s E               None,
345s E               None,
345s E               None,
345s E               [],
345s E           ))
345s E state.one_command(command=functools.partial(test.test_hypothesis.base.Command)(
345s E               'zadd',
345s E               b'A',
345s E               None,
345s E               None,
345s E               None,
345s E               None,
345s E               [],
345s E           ))
345s E state.one_command(command=functools.partial(test.test_hypothesis.base.Command)('rename', b'B', b'A')) 345s E state.one_command(command=functools.partial(test.test_hypothesis.base.Command)(
345s E               'zrangebylex',
345s E               b'A',
345s E               b'-',
345s E               b'+',
345s E               ('limit', -1, 1),
345s E           ))
345s E           state.teardown()
345s E           Explanation:
345s E These lines were always and only run by failing examples: 345s E /tmp/autopkgtest-lxc.6_8srlqn/downtmp/build.1uN/src/test/test_hypothesis/base.py:274
345s
345s test/test_hypothesis/base.py:273: AssertionError

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to