def test_it_should_forward_traffic_to_an_interface(self): l = Link('A') i = Interface(link=l) j = Interface(link=l) l.accept("This is a packet.", previous_hop=i) self.assertEqual(1, len(j.received())) self.assertEqual("This is a packet.", j.received()[0])
def test_it_should_accept_packets_from_a_link(self): l = Link('A') i = Interface(link=l) j = Interface(link=l) i.send("This is a packet.") self.assertEqual(1, len(j.received())) self.assertEqual("This is a packet.", j.received()[0])
def test_it_should_get_received_packets_filtered_by_type(self): l = Link('A') i = Interface(link=l) l.accept(IPv6(src="2001:db8::2", dst="2001:db8::1")/ICMPv6EchoRequest()) l.accept(IPv6(src="2001:db8::1", dst="2001:db8::2")/ICMPv6EchoReply()) self.assertEqual(1, len(i.received(type=ICMPv6EchoRequest))) self.assertTrue(i.received(type=ICMPv6EchoRequest)[0].haslayer(ICMPv6EchoRequest))
def test_it_should_strip_layer_2_frames_from_packets_on_receive(self): l = Link('A') i = Interface(link=l) l.accept(Ether()/IPv6()) self.assertEqual(1, len(i.received())) self.assertFalse(i.received()[0].haslayer('Ether')) self.assertTrue(i.received()[0].haslayer('IPv6'))
def test_it_should_not_return_traffic_to_the_previous_hop(self): l = Link('A') i = Interface(link=l) l.accept("This is a packet.", previous_hop=i) self.assertEqual(0, len(i.received()))
def test_it_should_get_received_packets_filtered_by_lambda(self): l = Link('A') i = Interface(link=l) l.accept(IPv6(src="2001:db8::2", dst="2001:db8::1")/ICMPv6EchoRequest()) l.accept(IP(src="192.168.0.1", dst="192.168.0.2")/ICMP()) self.assertEqual(1, len(i.received(lbda=lambda p: p.haslayer(IPv6))))
def test_it_should_get_received_packets_filtered_by_sequence(self): l = Link('A') i = Interface(link=l) l.accept(IPv6(src="2001:db8::2", dst="2001:db8::1")/ICMPv6EchoRequest(seq=2)) l.accept(IPv6(src="2001:db8::1", dst="2001:db8::2")/ICMPv6EchoReply(seq=2)) self.assertEqual(2, len(i.received(seq=2))) self.assertEqual(0, len(i.received(seq=1)))