Source code for dhcpkit.tests.common.server.test_config_datatypes

"""
Tests for datatypes for use in configuration files
"""
import unittest

from dhcpkit.common.server.config_datatypes import domain_name


[docs]class DomainNameTestCase(unittest.TestCase):
[docs] def test_valid(self): valid_domain_names = [ ('steffann.nl', 'steffann.nl'), ('steffann.nl.', 'steffann.nl.'), ('Steffann.Nl', 'steffann.nl'), ('Steffann.Nl.', 'steffann.nl.'), ('STEFFANN.NL', 'steffann.nl'), ('STEFFANN.NL.', 'steffann.nl.'), ('10ww.steffann.nl', '10ww.steffann.nl'), ('local', 'local'), ('LOCAL', 'local'), ('10ww.' 'steffann-steffann-steffann-steffann-steffann-steffann-steffann.' 'steffann-steffann-steffann-steffann-steffann-steffann-steffann.' 'steffann-steffann-steffann-steffann-steffann-steffann-steffann.' 'steffann-steffann-steffann-steffann-steffann-steffann-st.' 'nl', '10ww.' 'steffann-steffann-steffann-steffann-steffann-steffann-steffann.' 'steffann-steffann-steffann-steffann-steffann-steffann-steffann.' 'steffann-steffann-steffann-steffann-steffann-steffann-steffann.' 'steffann-steffann-steffann-steffann-steffann-steffann-st.' 'nl'), ('10ww.' 'steffann-steffann-steffann-steffann-steffann-steffann-steffann.' 'steffann-steffann-steffann-steffann-steffann-steffann-steffann.' 'steffann-steffann-steffann-steffann-steffann-steffann-steffann.' 'steffann-steffann-steffann-steffann-steffann-steffann-st.' 'nl.', '10ww.' 'steffann-steffann-steffann-steffann-steffann-steffann-steffann.' 'steffann-steffann-steffann-steffann-steffann-steffann-steffann.' 'steffann-steffann-steffann-steffann-steffann-steffann-steffann.' 'steffann-steffann-steffann-steffann-steffann-steffann-st.' 'nl.'), ] for test, output in valid_domain_names: with self.subTest(test=test): self.assertEqual(domain_name(test), output)
[docs] def test_name_too_long(self): oversized_domain_name = '10ww.' \ 'steffann-steffann-steffann-steffann-steffann-steffann-steffann.' \ 'steffann-steffann-steffann-steffann-steffann-steffann-steffann.' \ 'steffann-steffann-steffann-steffann-steffann-steffann-steffann.' \ 'steffann-steffann-steffann-steffann-steffann-steffann-ste.' \ 'nl' with self.assertRaisesRegex(ValueError, 'Domain too long'): domain_name(oversized_domain_name)
[docs] def test_label_too_long(self): oversized_label_name = '10ww.steffann-steffann-steffann-steffann-steffann-steffann-steffann-steffann.nl' with self.assertRaisesRegex(ValueError, 'Label too long'): domain_name(oversized_label_name)
if __name__ == '__main__': # pragma: no cover unittest.main()