from __future__ import annotations from app.signaling.ice_parser import parse_ice class TestIceParser: def test_parse_valid_ice(self): data = { "candidate": "1234567890 1 UDP 2130706431 192.168.1.1 12345 typ host", "sdpMid": "0", "sdpMLineIndex": 0, } cand = parse_ice(data) assert cand is not None assert cand.foundation == "1234567890" assert cand.component == 1 assert cand.protocol == "udp" assert cand.ip == "192.168.1.1" assert cand.port == 12345 assert cand.type == "host" def test_parse_invalid_ice(self): assert parse_ice({"candidate": "invalid"}) is None def test_parse_srflx(self): data = { "candidate": "abcdef 1 UDP 1686052607 203.0.113.1 50000 typ srflx raddr 192.168.1.1 rport 12345", "sdpMid": "0", "sdpMLineIndex": 0, } cand = parse_ice(data) assert cand is not None assert cand.type == "srflx" assert cand.relatedAddress == "192.168.1.1" assert cand.relatedPort == 12345