diff --git a/dns_sync/config.py b/dns_sync/config.py index 215417c..3d573d0 100644 --- a/dns_sync/config.py +++ b/dns_sync/config.py @@ -100,6 +100,7 @@ class AppConfig: source_name: str provider_name: str npm_endpoints: tuple[Endpoint, ...] + verizon_endpoints: tuple[Endpoint, ...] proxy_ip: str proxy_api_port: int proxy_api_scheme: str @@ -121,6 +122,12 @@ class AppConfig: source_name = os.getenv("PROXY", "npm").strip().lower() provider_name = os.getenv("DNS_PROVIDER", "verizon").strip().lower() + verizon_endpoints = parse_endpoint_list( + "verizon", + os.getenv("VERIZON_ENDPOINTS", "192.168.1.1"), + 443, + ) + try: port = int(os.getenv("PROXY_API_PORT", "81")) except ValueError as exc: @@ -188,6 +195,7 @@ class AppConfig: source_name=source_name, provider_name=provider_name, npm_endpoints=npm_endpoints, + verizon_endpoints=verizon_endpoints, proxy_ip=proxy_ip, proxy_api_port=port, proxy_api_scheme=scheme, diff --git a/tests/test_config.py b/tests/test_config.py index 237faf8..a616e02 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -115,6 +115,49 @@ class AppConfigEndpointTests(unittest.TestCase): ): AppConfig.from_env() + def test_verizon_endpoint_list_is_plugin_specific(self): + with patch.dict( + os.environ, + { + "NPM_ENDPOINTS": "192.168.1.3", + "VERIZON_ENDPOINTS": ( + "192.168.1.1,192.168.1.254:8443" + ), + }, + clear=True, + ): + config = AppConfig.from_env() + + self.assertEqual( + tuple( + endpoint.identity + for endpoint in config.verizon_endpoints + ), + ( + "verizon://192.168.1.1:443", + "verizon://192.168.1.254:8443", + ), + ) + + def test_router_url_does_not_configure_generic_endpoint(self): + with patch.dict( + os.environ, + { + "NPM_ENDPOINTS": "192.168.1.3", + "ROUTER_URL": "https://192.168.1.254", + }, + clear=True, + ): + config = AppConfig.from_env() + + self.assertEqual( + tuple( + endpoint.identity + for endpoint in config.verizon_endpoints + ), + ("verizon://192.168.1.1:443",), + ) + if __name__ == "__main__": unittest.main()