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(" None: workspace = GitWorkspace(settings(workspace_root=tmp_path), 3) workspace.path.mkdir() subprocess.run(["git", "init"], cwd=workspace.path, check=True, capture_output=True) subprocess.run( ["git", "config", "user.email", "test@example.invalid"], cwd=workspace.path, check=True, ) subprocess.run( ["git", "config", "user.name", "Test"], cwd=workspace.path, check=True, ) tracked = workspace.path / "tracked.php" tracked.write_text("