28 lines
884 B
Python
28 lines
884 B
Python
import subprocess
|
|
|
|
from test_config import settings
|
|
|
|
from lai_automation.git import GitWorkspace
|
|
|
|
|
|
def test_test_command_does_not_interpret_shell_metacharacters(tmp_path) -> None:
|
|
workspace = GitWorkspace(settings(workspace_root=tmp_path), 1)
|
|
workspace.path.mkdir()
|
|
|
|
result = workspace.run("printf safe ; touch injected", check=False)
|
|
|
|
assert result.stdout == "safe"
|
|
assert result.returncode != 0
|
|
assert not (workspace.path / "injected").exists()
|
|
|
|
|
|
def test_summary_includes_untracked_files(tmp_path) -> None:
|
|
workspace = GitWorkspace(settings(workspace_root=tmp_path), 2)
|
|
workspace.path.mkdir()
|
|
subprocess.run(["git", "init"], cwd=workspace.path, check=True, capture_output=True)
|
|
(workspace.path / "new.php").write_text("<?php\n")
|
|
|
|
summary = workspace.summary()
|
|
|
|
assert summary.files == ("new.php",)
|
|
assert summary.added_lines == 1 |