Editor function takes an optional io object which is used to print an error output if the subprocess errors.
19 lines
592 B
Python
19 lines
592 B
Python
from pathlib import Path
|
|
from unittest.mock import Mock, patch
|
|
|
|
from topen import add_annotation, open_editor
|
|
|
|
|
|
def test_open_editor_escapes_shell():
|
|
"""Ensure filenames with spaces/metas do not allow shell injection."""
|
|
with patch("subprocess.run") as run_mock:
|
|
open_editor(Path("my note$1.txt"), "vim")
|
|
run_mock.assert_called_once_with(["vim", "my note$1.txt"], check=True)
|
|
|
|
|
|
#
|
|
# def test_add_annotation_saves_task():
|
|
# task = Mock()
|
|
# add_annotation(task, "hello")
|
|
# task.add_annotation.assert_called_once_with("hello")
|
|
# task.save.assert_called_once()
|