Add sv chat 0.6.5 test

This commit is contained in:
ChillerDragon 2023-05-30 13:17:59 +02:00
parent 1fa282b192
commit 7e11d6d129

View file

@ -0,0 +1,54 @@
from twnet_parser.packet import parse6, TwPacket, PacketHeader6
from twnet_parser.messages6.game.sv_chat import MsgSvChat
from twnet_parser.messages6.system.map_data import MsgMapData
def test_game_sv_chat():
"""
Sent by a vanilla 0.6.5 server
copied from a real traffic capture
"""
data = b'\x08\x04' \
b'\x02\x9c\x6b\xcb\xda\x42\x0e\x07\x06\x00\x40\x27\x6e\x61\x6d\x65' \
b'\x6c\x65\x73\x73\x20\x74\x65\x65\x27\x20\x65\x6e\x74\x65\x72\x65' \
b'\x64\x20\x61\x6e\x64\x20\x6a\x6f\x69\x6e\x65\x64\x20\x74\x68\x65' \
b'\x20\x67\x61\x6d\x65\x00\x06\x0b\x0f\x9a\x51\x9b\x51\xb3\x92\xad' \
b'\xb9\x0b\x9f\x01\x00\x03\x00\x06\x00\x00\x00\x00\x00\x14\x00\x00' \
b'\x01\x0b\x00\xda\xc8\xf0\x91\x02\xcc\xb0\xd0\xb1\x02\xda\xe8\xd8' \
b'\xf0\x0b\xff\xff\xfb\xf7\x0f\xff\xfd\xfb\xf7\x0f\xff\xfd\xfb\xf7' \
b'\x0f\xff\xff\xfb\xf7\x0f\x40\xde\xe4\xd0\xb1\x03\xff\xad\x98\xa1' \
b'\x01\xff\xfd\xfb\xf7\x0f\xff\xfd\xfb\xf7\x0f\xff\xfd\xfb\xf7\x0f' \
b'\xff\xff\xfb\xf7\x0f\x00\x80\xfe\x07\x80\xfe\x07\x0a\x00\x01\x00' \
b'\x00\x00\x00'
packet = parse6(data)
assert packet.version == '0.6'
assert packet.header.ack == 4
assert packet.header.num_chunks == 2
assert packet.header.flags.token is True
assert packet.header.flags.control is False
assert packet.header.flags.connless is False
assert packet.header.flags.resend is False
assert packet.header.flags.compression is False
assert len(packet.messages) == 2
msg: MsgSvChat = packet.messages[0]
assert msg.system_message is False
assert msg.message_name == 'sv_chat'
assert msg.client_id == -1
assert msg.message == "'nameless tee' entered and joined the game"
# no idea if this is correct
msg2: MsgMapData = packet.messages[1]
assert msg2.system_message is True
assert msg2.message_name == "map_data"
assert msg2.chunk == 0
assert msg2.crc == 10
repack = packet.pack()
# TODO: this has a diff
# assert repack == data