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 )