def test_set_param_received_ipv4(): via = ViaHeader( 'SIP/2.0/TCP 192.168.1.1:5090;branch=branch_v;ttl=200;received=1.1.1.1;maddr=x.com' ) via.set_param(PARAM_RECEIVED, '2.2.2.2') assert via.received == ipaddress.IPv4Address('2.2.2.2') via = ViaHeader( 'SIP/2.0/TCP 192.168.1.1:5090;branch=branch_v;ttl=200;received=1.1.1.1;maddr=x.com' ) via.set_param(PARAM_RECEIVED, ipaddress.IPv4Address('2.2.2.2')) assert via.received == ipaddress.IPv4Address('2.2.2.2')
def test_set_param_received_ipv6(): via = ViaHeader( 'SIP/2.0/TCP 192.168.1.1:5090;branch=branch_v;ttl=200;received=1.1.1.1;maddr=x.com' ) via.set_param(PARAM_RECEIVED, '[::1]') assert via.assemble( ) == 'SIP/2.0/TCP 192.168.1.1:5090;branch=branch_v;ttl=200;received=[::1];maddr=x.com' assert via.received == ipaddress.IPv6Address('::1') via = ViaHeader( 'SIP/2.0/TCP 192.168.1.1:5090;branch=branch_v;ttl=200;received=1.1.1.1;maddr=x.com' ) via.set_param(PARAM_RECEIVED, ipaddress.IPv6Address('::1')) assert via.assemble( ) == 'SIP/2.0/TCP 192.168.1.1:5090;branch=branch_v;ttl=200;received=[::1];maddr=x.com' assert via.received == ipaddress.IPv6Address('::1')
def test_via_branch(): branch_value = 'z9hG4bK776asdhds' branch = Branch(branch_value) via = ViaHeader('SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=' + branch_value) assert via.branch == branch assert via.branch.make_key() == branch.make_key()
def test_set_rport_to_true(): via = ViaHeader( 'SIP/2.0/TCP 192.168.1.1:5090;branch=branch_v;ttl=200;rport=1234;maddr=x.com' ) via.set_param(PARAM_RPORT, True) assert via.assemble( ) == 'SIP/2.0/TCP 192.168.1.1:5090;branch=branch_v;ttl=200;rport;maddr=x.com' assert via.rport is True
def add_via(self, message, branch): via_hdr = message.get(VIA_HEADER) via = ViaHeader() via.sent_by = SentBy(host=self.local_addr, port=self.local_port) via.sent_protocol = SentProtocol(transport=self.transport, version='2.0', name='SIP') via.branch = branch via_hdr.add_topmost(via) message.set_header(via_hdr)
def test_via_params(): via = ViaHeader( 'SIP/2.0/TCP 192.168.1.1:5090;branch=z9hG4bK77ef4c2312983.1;rport;x=1;some' ) assert Branch('z9hG4bK77ef4c2312983.1') == via.branch assert via.rport is True assert via.get_raw_param('x') == '1' assert via.get_raw_param('rport') is None assert via.get_raw_param('some') is None
def check_via_match(self, via): if self.check_via_match_address(via) and self.check_via_match_transport(via): return ViaMatchResult(result=ViaMatchResult.MATCH) else: expected = ViaHeader() expected.sent_by = SentBy(host=self.local_addr, port=self.local_port) expected.sent_protocol = SentProtocol(transport=self.transport, version='2.0', name='SIP') expected_str = expected.assemble() actual_str = via.assemble() return ViaMatchResult(result=ViaMatchResult.MISMATCH, expected=expected_str, actual=actual_str)
def test_set_rport_error(rport): via = ViaHeader( 'SIP/2.0/TCP 192.168.1.1:5090;branch=branch_v;ttl=200;rport=4321;maddr=x.com' ) with pytest.raises(ViaHeaderError): via.set_param(PARAM_RPORT, rport)
def test_set_received_error(rec_str): via = ViaHeader( 'SIP/2.0/TCP 192.168.1.1:5090;branch=branch_v;ttl=200;received=1.1.1.1;maddr=x.com' ) with pytest.raises(ViaHeaderError): via.set_param(PARAM_RECEIVED, rec_str)
def test_assemble(via_str): via1 = ViaHeader(via_str) hdr = Header('Via') hdr.add_value(via1.assemble()) via2 = ViaHeader.topmost_via(hdr) assert via1 == via2
def test_sent_by_key(): via1 = ViaHeader('SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=x') via2 = ViaHeader('SIP/2.0/UDP BIGBOX3.SITE3.ATLANTA.COM;branch=y') assert via1.sent_by == via2.sent_by
def test_ne(via_str1, via_str2): via1 = ViaHeader(via_str1) via2 = ViaHeader(via_str2) assert via1 != via2
def test_eq(via_str1, via_str2): via1 = ViaHeader(via_str1) via2 = ViaHeader(via_str2) assert via1 == via2
def test_parse_fail(via_str): with pytest.raises(ViaHeaderError): ViaHeader(via_str)