def test_contains_transport_layer(self): group = TransportGroup() address = TransportAddress(low=1, high=2) assert_in(address, group) group.add('1-2') assert_in(address, group) assert_not_in('3-4', group)
def test_initialization(self): group = TransportGroup() group.add(TransportAddress(low=1, high=2)) layer = TransportLayer(source='1-2', destination='2-3') assert_equals(layer.source, group) group = TransportGroup() group.add(TransportAddress(low=2, high=3)) assert_equals(layer.destination, group)
def test_address_is_default(self): group = TransportGroup() assert_true(group.address_is_default) group.add('1 3') assert_false(group.address_is_default) group.add('4 5') assert_false(group.address_is_default) group.remove('1 3') assert_false(group.address_is_default) group.remove('4 5') assert_true(group.address_is_default)
def test_equality(self): group_a = TransportGroup() group_b = TransportGroup() addresses = list() addresses.append(TransportAddress(1, 3)) addresses.append(TransportAddress(3, 5)) addresses.append(TransportAddress(25, 27)) assert_equals(group_a, group_b) for address in addresses: group_a.add(address) group_b.add(address) assert_equals(group_a, group_b)
def test_remove(self): group = TransportGroup() address01 = TransportAddress(1, 3) address02 = TransportAddress(3, 5) group.add(address01) assert_false(group.remove(address02)) group.add(address02) assert_true(group.remove(address01)) assert_true(group.remove(address02)) assert_false(group.remove(address01)) assert_false(group.has(address01)) assert_false(group.has(address02))
def test_has(self): group = TransportGroup() addresses = list() addresses.append(TransportAddress(1, 3)) addresses.append(TransportAddress(3, 5)) addresses.append(TransportAddress(25, 27)) for index, address in enumerate(addresses): for added in addresses[:index]: assert_true(group.has(added)) for not_added in addresses[index:]: assert_false(group.has(not_added)) group.add(address)
def build(cls, text): if isinstance(text, TransportLayer): return text elif text is None: return TransportLayer() original_text = text cls._validate_text(text) text = cls._clean_text(text) protocol_cls, text = TransportAddressBuilder._extract_protocol(text) text = cls._normalize(text, original_text) source, destination = text.split() source_group = TransportGroup() source_group.add(protocol_cls.from_string(source)) destination_group = TransportGroup() destination_group.add(protocol_cls.from_string(destination)) return TransportLayer(source=source_group, destination=destination_group)
def test_add(self): group = TransportGroup() address01 = TransportAddress(1, 3) address02 = TransportAddress(3, 5) address03 = TransportAddress(25, 27) assert_true(group.add(address01)) assert_false(group.add(address01)) assert_false(group.add('1 3')) assert_true(group.add(address02)) assert_false(group.add(address02)) assert_false(group.add('3 - 5')) assert_false(group.add(address01)) assert_true(group.add('25-27')) assert_false(group.add(address03))
def test_repr(self): layer = TransportGroup() layer.add('1-2') assert_equals(layer.__repr__(), "<TransportGroup TCP/UDP 1-2>") layer.add('3-4') assert_equals(layer.__repr__(), "<TransportGroup ['TCP/UDP 1-2', 'TCP/UDP 3-4']>") layer.add('5-6') text = "<TransportGroup ['TCP/UDP 1-2', 'TCP/UDP 3-4', 'TCP/UDP 5-6']>" assert_equals(layer.__repr__(), text) layer.add('7-8') text = "<TransportGroup ['TCP/UDP 1-2', 'TCP/UDP 3-4', 'TCP/UDP 5-6', ...]>" assert_equals(layer.__repr__(), text)
def test_inequality(self): group_a = TransportGroup() group_b = TransportGroup() address01 = TransportAddress(1, 3) address02 = TransportAddress(3, 5) assert_equals(group_a, group_b) group_a.add(address01) assert_not_equals(group_a, group_b) group_b.add(address01) assert_equals(group_a, group_b) group_b.add(address02) assert_not_equals(group_a, group_b)
def test_contains_single_port(self): group = TransportGroup() assert_in(2, group) group.add('1-2') assert_in(1, group) assert_not_in(3, group)
def test_add_mixed_ports(self): group = TransportGroup() group.add(TransportAddress.from_string('1-3')) group.add(TcpAddress.from_string('1-3')) group.add(UdpAddress.from_string('1-3')) assert_equals(len(group), 3)