mcp-text-editor

by tumf
MIT License
48
  • Apple
  • Linux
"""Test module for patch_text_file with end=None.""" import os import pytest from mcp_text_editor.text_editor import TextEditor @pytest.mark.asyncio async def test_patch_text_file_end_none(tmp_path): """Test patching text file with end=None.""" # Create a test file file_path = os.path.join(tmp_path, "test.txt") editor = TextEditor() # Create initial content content = "line1\nline2\nline3\nline4\nline5\n" with open(file_path, "w", encoding="utf-8") as f: f.write(content) # Get file hash and range hash file_info = await editor.read_multiple_ranges( [ { "file_path": str(file_path), "ranges": [{"start": 2, "end": None}], # Test with end=None } ] ) # Extract file and range hashes file_content = file_info[str(file_path)] file_hash = file_content["file_hash"] range_hash = file_content["ranges"][0]["range_hash"] # Patch the file new_content = "new line2\nnew line3\nnew line4\nnew line5\n" patch = { "start": 2, "end": None, # Test with end=None "contents": new_content, "range_hash": range_hash, } result = await editor.edit_file_contents( str(file_path), file_hash, [patch], ) # Verify the patch was successful assert result["result"] == "ok" with open(file_path, "r", encoding="utf-8") as f: updated_content = f.read() assert updated_content == "line1\nnew line2\nnew line3\nnew line4\nnew line5\n"