Add generic endpoint list parsing

This commit is contained in:
Lyncoln
2026-09-19 16:04:03 -04:00
parent e32260fc50
commit b0af5349af
2 changed files with 124 additions and 0 deletions
+49
View File
@@ -0,0 +1,49 @@
import unittest
from dns_sync.config import parse_endpoint_list
class EndpointParsingTests(unittest.TestCase):
def test_comma_separated_addresses_use_default_port(self):
endpoints = parse_endpoint_list(
"npm",
"192.168.1.3, 192.168.1.4:8081,192.168.1.5",
81,
)
self.assertEqual(
tuple(endpoint.identity for endpoint in endpoints),
(
"npm://192.168.1.3:81",
"npm://192.168.1.4:8081",
"npm://192.168.1.5:81",
),
)
def test_duplicate_is_rejected_after_normalization(self):
with self.assertRaisesRegex(RuntimeError, "Duplicate NPM"):
parse_endpoint_list(
"npm",
"192.168.1.3,192.168.1.3:81",
81,
)
def test_empty_entry_is_rejected(self):
with self.assertRaisesRegex(RuntimeError, "empty address"):
parse_endpoint_list(
"npm",
"192.168.1.3,,192.168.1.5",
81,
)
def test_url_scheme_is_rejected(self):
with self.assertRaisesRegex(RuntimeError, "must not include"):
parse_endpoint_list(
"npm",
"http://192.168.1.3:81",
81,
)
if __name__ == "__main__":
unittest.main()