summaryrefslogtreecommitdiff
path: root/smoketest/scripts/cli/base_accel_ppp_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'smoketest/scripts/cli/base_accel_ppp_test.py')
-rw-r--r--smoketest/scripts/cli/base_accel_ppp_test.py65
1 files changed, 61 insertions, 4 deletions
diff --git a/smoketest/scripts/cli/base_accel_ppp_test.py b/smoketest/scripts/cli/base_accel_ppp_test.py
index eb809603e..5cf72b2dc 100644
--- a/smoketest/scripts/cli/base_accel_ppp_test.py
+++ b/smoketest/scripts/cli/base_accel_ppp_test.py
@@ -13,14 +13,18 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import os
+import re
import unittest
+from configparser import ConfigParser
+
from vyos.configsession import ConfigSession
+from vyos.configsession import ConfigSessionError
+from vyos.util import cmd
from vyos.util import get_half_cpus
+from vyos.util import process_named_running
from vyos.validate import is_ipv4
-nameserver = ['192.0.2.1', '192.0.2.2', '2001:db8::1']
-
class BasicAccelPPPTest:
class BaseTest(unittest.TestCase):
@@ -42,11 +46,26 @@ class BasicAccelPPPTest:
# PPPoE local auth mode requires local users to be configured!
self.set(['authentication', 'local-users', 'username', 'vyos', 'password', 'vyos'])
self.set(['authentication', 'mode', 'local'])
- for ns in nameserver:
- self.set(['name-server', ns])
+
def verify(self, conf):
self.assertEqual(conf['core']['thread-count'], str(get_half_cpus()))
+
+ def test_name_servers(self):
+ """ Verify proper Name-Server configuration for IPv4 and IPv6 """
+ self.basic_config()
+
+ nameserver = ['192.0.2.1', '192.0.2.2', '2001:db8::1']
+ for ns in nameserver:
+ self.set(['name-server', ns])
+
+ # commit changes
+ self.session.commit()
+
+ # Validate configuration values
+ conf = ConfigParser(allow_no_value=True, delimiters='=')
+ conf.read(self._config_file)
+
# IPv4 and IPv6 nameservers must be checked individually
for ns in nameserver:
if is_ipv4(ns):
@@ -54,3 +73,41 @@ class BasicAccelPPPTest:
else:
self.assertEqual(conf['ipv6-dns'][ns], None)
+ def test_authentication_local(self):
+ """ Test configuration of local authentication """
+ self.basic_config()
+
+ # upload / download limit
+ user = 'test'
+ password = 'test2'
+ static_ip = '100.100.100.101'
+ upload = '5000'
+ download = '10000'
+
+ self.set(['authentication', 'local-users', 'username', user, 'password', password])
+ self.set(['authentication', 'local-users', 'username', user, 'static-ip', static_ip])
+ self.set(['authentication', 'local-users', 'username', user, 'rate-limit', 'upload', upload])
+
+ # upload rate-limit requires also download rate-limit
+ with self.assertRaises(ConfigSessionError):
+ self.session.commit()
+ self.set(['authentication', 'local-users', 'username', user, 'rate-limit', 'download', download])
+
+ # commit changes
+ self.session.commit()
+
+ # Validate configuration values
+ conf = ConfigParser(allow_no_value=True, delimiters='=')
+ conf.read(self._config_file)
+
+ # basic verification
+ self.verify(conf)
+
+ # check local users
+ tmp = cmd(f'sudo cat {self._chap_secrets}')
+ regex = f'{user}\s+\*\s+{password}\s+{static_ip}\s+{download}/{upload}'
+ tmp = re.findall(regex, tmp)
+ self.assertTrue(tmp)
+
+ # Check for running process
+ self.assertTrue(process_named_running(self._process_name))