mirror of
https://github.com/outbackdingo/step-ca-webui.git
synced 2026-01-27 18:20:22 +00:00
test: add tests for cli_wrapper.py in PROJROOT/tests directory
This commit is contained in:
40
PROJROOT/tests/test_cli_wrapper.py
Normal file
40
PROJROOT/tests/test_cli_wrapper.py
Normal file
@@ -0,0 +1,40 @@
|
||||
import unittest
|
||||
from unittest.mock import patch
|
||||
from shared.cli_wrapper import CLIWrapper
|
||||
|
||||
class TestCLIWrapper(unittest.TestCase):
|
||||
|
||||
def test_sanitize_input(self):
|
||||
test_cases = [
|
||||
("normal input", "normal input"),
|
||||
("input with spaces", "'input with spaces'"),
|
||||
("input with 'quotes'", "'input with '\"'\"quotes'\"'\"'"),
|
||||
("input with $special &chars", "'input with $special &chars'"),
|
||||
]
|
||||
for input_str, expected_output in test_cases:
|
||||
with self.subTest(input_str=input_str):
|
||||
self.assertEqual(CLIWrapper.sanitize_input(input_str), expected_output)
|
||||
|
||||
@patch('subprocess.run')
|
||||
def test_execute_command_success(self, mock_run):
|
||||
mock_run.return_value.stdout = "Command output"
|
||||
mock_run.return_value.returncode = 0
|
||||
|
||||
output, return_code = CLIWrapper.execute_command("test command")
|
||||
|
||||
self.assertEqual(output, "Command output")
|
||||
self.assertEqual(return_code, 0)
|
||||
mock_run.assert_called_once_with("test command", shell=True, check=True, text=True, capture_output=True)
|
||||
|
||||
@patch('subprocess.run')
|
||||
def test_execute_command_failure(self, mock_run):
|
||||
mock_run.side_effect = subprocess.CalledProcessError(1, "test command", stdout="Error output")
|
||||
|
||||
output, return_code = CLIWrapper.execute_command("test command")
|
||||
|
||||
self.assertEqual(output, "Error output")
|
||||
self.assertEqual(return_code, 1)
|
||||
mock_run.assert_called_once_with("test command", shell=True, check=True, text=True, capture_output=True)
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user