diff options
| author | Indrajit Raychaudhuri <irc@indrajit.com> | 2023-12-10 22:35:46 -0400 | 
|---|---|---|
| committer | Indrajit Raychaudhuri <irc@indrajit.com> | 2023-12-11 19:00:46 -0400 | 
| commit | 40b22ffbef200ce33ecf835f0bee0f42e55957cb (patch) | |
| tree | b239e61ca57099ce3380f743db84f4d09be6857d | |
| parent | 10dfd829ab30c768fdbcc4713da62247835493d8 (diff) | |
| download | vyos-1x-40b22ffbef200ce33ecf835f0bee0f42e55957cb.tar.gz vyos-1x-40b22ffbef200ce33ecf835f0bee0f42e55957cb.zip | |
ddclient: T5791: Add smoketest for dynamic interface
| -rwxr-xr-x | smoketest/scripts/cli/test_service_dns_dynamic.py | 31 | 
1 files changed, 30 insertions, 1 deletions
| diff --git a/smoketest/scripts/cli/test_service_dns_dynamic.py b/smoketest/scripts/cli/test_service_dns_dynamic.py index 55bdde94a..ae46b18ba 100755 --- a/smoketest/scripts/cli/test_service_dns_dynamic.py +++ b/smoketest/scripts/cli/test_service_dns_dynamic.py @@ -288,7 +288,36 @@ class TestServiceDDNS(VyOSUnitTestSHIM.TestCase):          self.assertIn(f'password=\'{password}\'', ddclient_conf)          self.assertIn(f'{hostname}', ddclient_conf) -    def test_07_dyndns_vrf(self): +    def test_07_dyndns_dynamic_interface(self): +        # Check if DDNS service can be configured and runs +        svc_path = name_path + ['namecheap'] +        proto = 'namecheap' +        dyn_interface = 'pppoe587' + +        self.cli_set(svc_path + ['address', dyn_interface]) +        self.cli_set(svc_path + ['protocol', proto]) +        self.cli_set(svc_path + ['server', server]) +        self.cli_set(svc_path + ['username', username]) +        self.cli_set(svc_path + ['password', password]) +        self.cli_set(svc_path + ['host-name', hostname]) + +        # Dynamic interface will raise a warning but still go through +        # XXX: We should have idiomatic class "ConfigSessionWarning" wrapping +        #      "Warning" similar to "ConfigSessionError". +        # with self.assertWarns(Warning): +        #     self.cli_commit() +        self.cli_commit() + +        # Check the generating config parameters +        ddclient_conf = cmd(f'sudo cat {DDCLIENT_CONF}') +        self.assertIn(f'ifv4={dyn_interface}', ddclient_conf) +        self.assertIn(f'protocol={proto}', ddclient_conf) +        self.assertIn(f'server={server}', ddclient_conf) +        self.assertIn(f'login={username}', ddclient_conf) +        self.assertIn(f'password=\'{password}\'', ddclient_conf) +        self.assertIn(f'{hostname}', ddclient_conf) + +    def test_08_dyndns_vrf(self):          # Table number randomized, but should be within range 100-65535          vrf_table = '58710'          vrf_name = f'vyos-test-{vrf_table}' | 
