Source code for dhcpkit.tests.ipv6.options.test_vendor_class_option

"""
Test the VendorClassOption implementation
"""
import unittest

from dhcpkit.ipv6.options import VendorClassOption
from dhcpkit.tests.ipv6.options import test_option


[docs]class VendorClassOptionTestCase(test_option.OptionTestCase):
[docs] def setUp(self): self.option_bytes = bytes.fromhex('0010001a00009d10') + b'\x00\x05Class' + b'\x00\x0dAnother Class' self.option_object = VendorClassOption(40208, [b'Class', b'Another Class']) self.parse_option()
[docs] def test_enterprise_number(self): self.check_unsigned_integer_property('enterprise_number', size=32)
[docs] def test_vendor_classes(self): self.option.vendor_classes = b'Not a list' with self.assertRaisesRegex(ValueError, 'must be a list'): self.option.validate() self.option.vendor_classes = [b'In a list', b'X' * 2 ** 16] with self.assertRaisesRegex(ValueError, 'must be a list'): self.option.validate()
[docs] def test_bad_option_length(self): with self.assertRaisesRegex(ValueError, 'length does not match'): VendorClassOption.parse(bytes.fromhex('0010000a00009d10') + b'\x00\x05Class') with self.assertRaisesRegex(ValueError, 'length does not match'): VendorClassOption.parse(bytes.fromhex('0010000d00009d10') + b'\x00\x05Class\x00\x01X')
if __name__ == '__main__': # pragma: no cover unittest.main()