Files
Gitea-Tools/tests/test_issue_697_untracked_preflight.py
T

33 lines
1.3 KiB
Python

"""Regression test for Issue #697: Native workspace preflight explicitly includes untracked files.
Verifies that `_parse_porcelain_entries` includes untracked files (lines starting with '??')
so workspace preflight fails closed on untracked or dirty state.
"""
from __future__ import annotations
import unittest
import gitea_mcp_server as mcp_server
class TestIssue697UntrackedPreflight(unittest.TestCase):
def test_parse_porcelain_entries_includes_untracked_files(self):
porcelain = " M gitea_mcp_server.py\n?? untracked_file.txt\n?? new_dir/test.py\n"
entries = mcp_server._parse_porcelain_entries(porcelain)
self.assertIn("untracked_file.txt", entries)
self.assertIn("new_dir/test.py", entries)
self.assertEqual(entries["untracked_file.txt"], "?? untracked_file.txt")
self.assertEqual(entries["new_dir/test.py"], "?? new_dir/test.py")
def test_parse_porcelain_entries_includes_tracked_and_untracked(self):
porcelain = " M tracked.py\n?? untracked.py\n D deleted.py\n"
entries = mcp_server._parse_porcelain_entries(porcelain)
self.assertEqual(len(entries), 3)
self.assertIn("tracked.py", entries)
self.assertIn("untracked.py", entries)
self.assertIn("deleted.py", entries)
if __name__ == "__main__":
unittest.main()