Exemplo n.º 1
0
    def test_should_return_exactly_the_same_data_as_passed_to_constructor_when_to_bytes_method_is_called(self):
        # GIVEN
        data = any_data()
        payload = UDPBytesPayload(data)

        # WHEN
        actual = payload.to_bytes()

        # THEN
        self.assertEqual(data, actual)
Exemplo n.º 2
0
    def test_should_build_IPv6Packet_with_UDP_payload_from_well_know_values_when_to_bytes_method_is_called(self):
        # GIVEN
        ipv6_header = IPv6Header(source_address="fe80::1",
                                 destination_address="ff02::2",
                                 hop_limit=255)

        udp_dgram = UDPDatagram(UDPHeader(src_port=19788, dst_port=19788),
                                UDPBytesPayload(bytearray([0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                           0x00, 0x00, 0x01, 0x09, 0x01, 0x01, 0x0b, 0x03,
                                                           0x04, 0xc6, 0x69, 0x73, 0x51, 0x0e, 0x01, 0x80,
                                                           0x12, 0x02, 0x00, 0x01, 0xde, 0xad, 0xbe, 0xef])))

        ipv6_packet = IPv6Packet(ipv6_header, udp_dgram)

        # WHEN
        ipv6_packet_bytes = ipv6_packet.to_bytes()

        # THEN
        expected_ipv6_packet_bytes = bytearray([0x60, 0x00, 0x00, 0x00, 0x00, 0x28, 0x11, 0xff,
                                                0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
                                                0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
                                                0x4d, 0x4c, 0x4d, 0x4c, 0x00, 0x28, 0xe9, 0xf4,
                                                0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                                0x00, 0x00, 0x01, 0x09, 0x01, 0x01, 0x0b, 0x03,
                                                0x04, 0xc6, 0x69, 0x73, 0x51, 0x0e, 0x01, 0x80,
                                                0x12, 0x02, 0x00, 0x01, 0xde, 0xad, 0xbe, 0xef])

        self.assertEqual(expected_ipv6_packet_bytes, ipv6_packet_bytes)
Exemplo n.º 3
0
    def test_should_create_UDPBytesPayload_when_from_bytes_class_method_is_called(self):
        # GIVEN
        data = any_data()

        # WHEN
        actual = UDPBytesPayload.from_bytes(data)

        # THEN
        self.assertEqual(data, actual.data)
Exemplo n.º 4
0
    def test_should_return_the_same_length_as_data_passed_to_constructor_when_len_is_called_on_UDPBytesPayload_object(self):
        # GIVEN
        data = any_data()
        payload = UDPBytesPayload(data)

        # WHEN
        actual = len(payload)

        # THEN
        self.assertEqual(len(data), actual)
Exemplo n.º 5
0
    def test_should_creates_bytes_from_UDPHeader_and_payload_when_to_bytes_method_is_called(self):
        # GIVEN
        src_port = any_port()
        dst_port = any_port()
        checksum = any_checksum()

        payload = any_payload()
        payload_length = len(payload) + 8  # UDP length consists of UDP header length and payload length

        udp_header = UDPHeader(src_port, dst_port, payload_length, checksum)
        udp_payload = UDPBytesPayload(payload)
        udp_dgram = UDPDatagram(udp_header, udp_payload)

        # WHEN
        udp_dgram_bytes = udp_dgram.to_bytes()

        # THEN
        expected_udp_dgram_bytes = struct.pack("!H", src_port) + struct.pack("!H", dst_port) + \
            struct.pack("!H", payload_length) + struct.pack("!H", checksum) + payload

        self.assertEqual(expected_udp_dgram_bytes, udp_dgram_bytes)