test: Add test for pipe_editor with shell script logging arguments

This commit is contained in:
Paul Gauthier (aider) 2025-02-24 09:46:16 -08:00
parent fe6a3c89f3
commit c7e9d645e5

View file

@ -89,6 +89,35 @@ def test_discover_editor_override():
discover_editor('vim "unclosed quote')
def test_pipe_editor_with_shell_script():
# Create a temporary shell script that logs its arguments
import tempfile
import stat
with tempfile.NamedTemporaryFile(mode='w', suffix='.sh', delete=False) as f:
f.write('#!/bin/bash\necho "$@" > "$0.log"\n')
script_path = f.name
# Make the script executable
os.chmod(script_path, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR)
try:
# Use the script as editor and verify it's called with .md file
result = pipe_editor("test content", suffix="md", editor=script_path)
# Read the log file to see what arguments were passed
with open(f"{script_path}.log") as f:
called_args = f.read().strip()
# Verify the editor was called with a .md file
assert called_args.endswith(".md")
finally:
# Clean up
os.unlink(script_path)
if os.path.exists(f"{script_path}.log"):
os.unlink(f"{script_path}.log")
def test_pipe_editor():
# Test with default editor
test_content = "Initial content"