34 lines
957 B
Python
34 lines
957 B
Python
from unittest.mock import Mock
|
|
|
|
import pytest
|
|
|
|
from fenrirscreenreader.commands.commands import subprocess as subprocess_command
|
|
|
|
|
|
@pytest.mark.unit
|
|
def test_script_command_executes_without_shell(monkeypatch):
|
|
process = Mock()
|
|
process.communicate.return_value = (b"done", b"")
|
|
popen = Mock(return_value=process)
|
|
monkeypatch.setattr(subprocess_command, "Popen", popen)
|
|
output_manager = Mock()
|
|
command = subprocess_command.command()
|
|
command.initialize(
|
|
{
|
|
"general": {"curr_user": "Username"},
|
|
"runtime": {"OutputManager": output_manager},
|
|
},
|
|
"/tmp/script with spaces",
|
|
)
|
|
|
|
command._thread_run()
|
|
|
|
popen.assert_called_once_with(
|
|
["/tmp/script with spaces", "Username"],
|
|
stdout=subprocess_command.PIPE,
|
|
stderr=subprocess_command.PIPE,
|
|
)
|
|
output_manager.present_text.assert_called_once_with(
|
|
"done", sound_icon="", interrupt=False
|
|
)
|