import struct import asyncio from unittest.mock import AsyncMock from pm3py.protocol import Cmd from pm3py.transport import PM3Response from pm3py.hw import HWCommands def make_ng_response(cmd: int, status: int, payload: bytes) -> PM3Response: return PM3Response(cmd=cmd, status=status, reason=0, ng=True, data=payload) def make_mock_transport(): transport = AsyncMock() return transport def _make_caps_response(is_rdv4=False): """Build a capabilities response with is_rdv4 flag.""" # version(1) + baudrate(4) + bigbuf_size(4) + 4 bytes of flags flags = bytearray(4) flags[0] = 0x80 # compiled_with_lf if is_rdv4: flags[3] = 0x02 # is_rdv4 at byte 12 bit 1 return make_ng_response(Cmd.CAPABILITIES, 0, struct.pack("