import pytest import struct import monocypher from openttd.protocol import OpenTTDProtocol, PacketGameType from openttd_protocol.wire.exceptions import SocketClosed class MockTransport: def __init__(self): self._closing = False def is_closing(self): return self._closing def close(self): self._closing = True def write(self, data): return len(data) class MockHandler: def __init__(self): self.encryption_enabled = False self._recv_aead = None self._send_aead = None self._session_key_recv = b"A" * 32 self._session_key_send = b"B" * 32 self._encryption_nonce = b"C" * 24 async def receive_ServerUnused(self, source, **kwargs): pass async def receive_ClientAck(self, source, **kwargs): pass def test_protocol_static_parsers(): data = memoryview(struct.pack("