Skip to content

Commit 69c19cf

Browse files
committed
Test framing largest MQTT payload
1 parent 54aa088 commit 69c19cf

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

tests/test_wslib.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,3 +130,17 @@ def test_wslib_deframe_ws_data_fragment() -> None:
130130
framed_data = bytearray([OpCode.BINARY, 0x00]) # FIN=0, opcode=BINARY, no payload
131131
with pytest.raises(WebsocketError, match="Fragmented WebSocket frames are not supported"):
132132
deframe_ws_data(framed_data)
133+
134+
135+
@pytest.mark.parametrize("do_mask", [True, False])
136+
def test_wslib_frame_large_data(do_mask: bool) -> None:
137+
data_length = 256 * 1024 * 1024 # 256MB, maximum MQTT packet size
138+
data = b"\x88" * data_length
139+
framed_data = frame_ws_data(OpCode.BINARY, data, do_mask=do_mask)
140+
frame = deframe_ws_data(bytearray(framed_data))
141+
assert frame is not None
142+
opcode, payload, was_masked, length = frame
143+
assert opcode == OpCode.BINARY
144+
assert payload == data
145+
assert was_masked is do_mask
146+
assert length == len(framed_data)

0 commit comments

Comments
 (0)