Skip to main content
Glama

Office MCP Server

by walkingzzzy
test_word_handler.py5.07 kB
"""测试 Word 文档处理器.""" import pytest from pathlib import Path from office_mcp_server.handlers.word_handler import WordHandler from office_mcp_server.config import config @pytest.fixture def word_handler() -> WordHandler: """创建 Word 处理器实例.""" return WordHandler() @pytest.fixture def test_filename() -> str: """测试文件名.""" return "test_document.docx" @pytest.fixture(autouse=True) def cleanup_output(test_filename: str) -> None: """测试后清理输出文件.""" yield # 清理测试文件 output_file = config.paths.output_dir / test_filename if output_file.exists(): output_file.unlink() def test_create_document(word_handler: WordHandler, test_filename: str) -> None: """测试创建 Word 文档.""" result = word_handler.create_document( test_filename, title="测试文档", content="这是测试内容" ) assert result["success"] is True assert "filename" in result assert Path(result["filename"]).exists() def test_create_document_without_content( word_handler: WordHandler, test_filename: str ) -> None: """测试创建空文档.""" result = word_handler.create_document(test_filename) assert result["success"] is True assert Path(result["filename"]).exists() def test_insert_text(word_handler: WordHandler, test_filename: str) -> None: """测试插入文本.""" # 先创建文档 word_handler.create_document(test_filename, content="初始内容") # 插入文本 result = word_handler.insert_text(test_filename, "新增内容", position="end") assert result["success"] is True def test_add_heading(word_handler: WordHandler, test_filename: str) -> None: """测试添加标题.""" # 先创建文档 word_handler.create_document(test_filename) # 添加标题 result = word_handler.add_heading(test_filename, "一级标题", level=1) assert result["success"] is True assert result["level"] == 1 def test_add_heading_invalid_level( word_handler: WordHandler, test_filename: str ) -> None: """测试无效标题级别.""" word_handler.create_document(test_filename) result = word_handler.add_heading(test_filename, "标题", level=10) assert result["success"] is False def test_format_text(word_handler: WordHandler, test_filename: str) -> None: """测试格式化文本.""" # 创建文档 word_handler.create_document(test_filename, content="测试内容") # 格式化第一段 result = word_handler.format_text( test_filename, paragraph_index=0, font_name="黑体", font_size=14, bold=True, color="#FF0000", ) assert result["success"] is True def test_format_text_invalid_index( word_handler: WordHandler, test_filename: str ) -> None: """测试无效段落索引.""" word_handler.create_document(test_filename, content="测试内容") result = word_handler.format_text(test_filename, paragraph_index=999) assert result["success"] is False def test_create_table(word_handler: WordHandler, test_filename: str) -> None: """测试创建表格.""" word_handler.create_document(test_filename) data = [ ["姓名", "年龄", "城市"], ["张三", "25", "北京"], ["李四", "30", "上海"], ] result = word_handler.create_table(test_filename, rows=3, cols=3, data=data) assert result["success"] is True assert result["rows"] == 3 assert result["cols"] == 3 def test_create_table_without_data( word_handler: WordHandler, test_filename: str ) -> None: """测试创建空表格.""" word_handler.create_document(test_filename) result = word_handler.create_table(test_filename, rows=2, cols=3) assert result["success"] is True def test_add_page_break(word_handler: WordHandler, test_filename: str) -> None: """测试添加分页符.""" word_handler.create_document(test_filename, content="第一页") result = word_handler.add_page_break(test_filename) assert result["success"] is True def test_get_document_info(word_handler: WordHandler, test_filename: str) -> None: """测试获取文档信息.""" word_handler.create_document(test_filename, title="测试", content="测试内容") word_handler.add_heading(test_filename, "标题", level=1) result = word_handler.get_document_info(test_filename) assert result["success"] is True assert "paragraph_count" in result assert "table_count" in result assert "word_count" in result assert result["paragraph_count"] > 0 def test_get_document_info_nonexistent( word_handler: WordHandler, ) -> None: """测试获取不存在文档的信息.""" result = word_handler.get_document_info("nonexistent.docx") assert result["success"] is False def test_invalid_file_extension(word_handler: WordHandler) -> None: """测试无效文件扩展名.""" result = word_handler.create_document("test.txt") assert result["success"] is False

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/walkingzzzy/office-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server