summaryrefslogtreecommitdiff
path: root/src/tests/test_utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/test_utils.py')
-rw-r--r--src/tests/test_utils.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/tests/test_utils.py b/src/tests/test_utils.py
index 5022b24f6..432672f06 100644
--- a/src/tests/test_utils.py
+++ b/src/tests/test_utils.py
@@ -16,6 +16,37 @@ from unittest import TestCase
from unittest.mock import patch
class TestVyOSUtils(TestCase):
+ def test_cmdl_basic(self):
+ from vyos.utils.process import cmdl
+ out = cmdl(['echo', 'hello'])
+ self.assertEqual(out, 'hello')
+
+ def test_cmdl_requires_list(self):
+ from vyos.utils.process import cmdl
+ with self.assertRaises(TypeError):
+ cmdl('echo hello')
+
+ def test_cmdl_sudo_prepends(self):
+ from vyos.utils.process import cmdl
+ with patch('vyos.utils.process.popen') as mock_popen:
+ mock_popen.return_value = ('', 0)
+ cmdl(['id'], sudo=True)
+ args, kwargs = mock_popen.call_args
+ self.assertEqual(args[0][0], 'sudo')
+ self.assertEqual(args[0][1], 'id')
+
+ def test_cmdl_no_shell(self):
+ from vyos.utils.process import cmdl
+ with patch('vyos.utils.process.popen') as mock_popen:
+ mock_popen.return_value = ('', 0)
+ cmdl(['true'])
+ _, kwargs = mock_popen.call_args
+ self.assertEqual(kwargs.get('shell'), False)
+
+ def test_cmdl_raises_on_nonzero(self):
+ from vyos.utils.process import cmdl
+ with self.assertRaises(OSError):
+ cmdl(['false'])
def test_key_mangling(self):
from vyos.utils.dict import mangle_dict_keys
data = {"foo-bar": {"baz-quux": None}}