Source code for dhcpkit.tests.ipv6.messages.test_confirm_message

"""
Test the RequestMessage implementation
"""
import codecs
import unittest
from ipaddress import IPv6Address, IPv6Network

from dhcpkit.ipv6.duids import LinkLayerDUID
from dhcpkit.ipv6.extensions.dns import OPTION_DNS_SERVERS
from dhcpkit.ipv6.extensions.ntp import OPTION_NTP_SERVER
from dhcpkit.ipv6.extensions.prefix_delegation import IAPDOption, IAPrefixOption, OPTION_IA_PD
from dhcpkit.ipv6.extensions.sntp import OPTION_SNTP_SERVERS
from dhcpkit.ipv6.extensions.sol_max_rt import OPTION_INF_MAX_RT, OPTION_SOL_MAX_RT
from dhcpkit.ipv6.messages import ConfirmMessage
from dhcpkit.ipv6.options import ClientIdOption, ElapsedTimeOption, IAAddressOption, IANAOption, OPTION_IA_NA, \
    OPTION_VENDOR_OPTS, OptionRequestOption, VendorClassOption
from dhcpkit.tests.ipv6.messages import test_client_server_message

""

confirm_message = ConfirmMessage(
    transaction_id=bytes.fromhex('f350d6'),
    options=[
        ElapsedTimeOption(elapsed_time=104),
        ClientIdOption(duid=LinkLayerDUID(hardware_type=1, link_layer_address=bytes.fromhex('3431c43cb2f1'))),
        IANAOption(iaid=bytes.fromhex('c43cb2f1'), options=[
            IAAddressOption(address=IPv6Address('2001:db8:ffff:1:c::e09c'), preferred_lifetime=375, valid_lifetime=600),
        ]),
        IAPDOption(iaid=bytes.fromhex('c43cb2f1'), options=[
            IAPrefixOption(prefix=IPv6Network('2001:db8:ffcc:fe00::/56'), preferred_lifetime=375, valid_lifetime=600),
        ]),
        OptionRequestOption(requested_options=[
            OPTION_DNS_SERVERS,
            OPTION_NTP_SERVER,
            OPTION_SNTP_SERVERS,
            OPTION_IA_PD,
            OPTION_IA_NA,
            OPTION_VENDOR_OPTS,
            OPTION_SOL_MAX_RT,
            OPTION_INF_MAX_RT,
        ]),
        VendorClassOption(enterprise_number=872),
    ],
)

confirm_packet = codecs.decode(
    '04'
    'f350d6'
    '000800020068'
    '0001000a000300013431c43cb2f1'
    '00030028c43cb2f100000000000000000005001820010db8ffff0001000c00000000e09c0000017700000258'
    '00190029c43cb2f10000000000000000001a001900000177000002583820010db8ffccfe000000000000000000'
    '0006001000170038001f00190003001100520053'
    '0010000400000368', 'hex'
)


[docs]class RequestMessageTestCase(test_client_server_message.ClientServerMessageTestCase):
[docs] def setUp(self): self.packet_fixture = confirm_packet self.message_fixture = confirm_message self.parse_packet()
if __name__ == '__main__': # pragma: no cover unittest.main()