Deskaid

  • e2e
#!/usr/bin/env python3 """Tests for the LS subtool.""" import os import unittest from codemcp.testing import MCPEndToEndTestCase class LSTest(MCPEndToEndTestCase): """Test the LS subtool.""" async def test_ls(self): """Test the LS subtool.""" # Create a test directory structure test_dir = os.path.join(self.temp_dir.name, "test_directory") os.makedirs(test_dir) with open(os.path.join(test_dir, "file1.txt"), "w") as f: f.write("Content of file 1") with open(os.path.join(test_dir, "file2.txt"), "w") as f: f.write("Content of file 2") # Create a subdirectory sub_dir = os.path.join(test_dir, "subdirectory") os.makedirs(sub_dir) with open(os.path.join(sub_dir, "subfile.txt"), "w") as f: f.write("Content of subfile") async with self.create_client_session() as session: # First initialize project to get chat_id init_result_text = await self.call_tool_assert_success( session, "codemcp", { "subtool": "InitProject", "path": self.temp_dir.name, "user_prompt": "Test initialization for LS test", "subject_line": "test: initialize for LS test", "reuse_head_chat_id": False, }, ) # Extract chat_id from the init result chat_id = self.extract_chat_id_from_text(init_result_text) # Call the LS tool with chat_id result_text = await self.call_tool_assert_success( session, "codemcp", {"subtool": "LS", "path": test_dir, "chat_id": chat_id}, ) # Verify the result includes all files and directories self.assertIn("file1.txt", result_text) self.assertIn("file2.txt", result_text) self.assertIn("subdirectory", result_text) if __name__ == "__main__": unittest.main()