Files
lyxy-document/tests/test_core/test_markdown.py
lanyuanxiaoyao 15b63800a8 refactor: 将核心代码迁移到 scripts 目录
- 创建 scripts/ 目录作为核心代码根目录
- 移动 core/, readers/, utils/ 到 scripts/ 下
- 移动 config.py, lyxy_document_reader.py 到 scripts/
- 移动 encoding_detection.py 到 scripts/utils/
- 更新 pyproject.toml 中的入口点路径和 pytest 配置
- 更新所有内部导入语句为 scripts.* 模块
- 更新 README.md 目录结构说明
- 更新 openspec/config.yaml 添加目录结构说明
- 删除无用的 main.py

此变更使项目结构更清晰,便于区分核心代码与测试、文档等支撑文件。
2026-03-08 17:41:03 +08:00

57 lines
1.5 KiB
Python

"""测试 Markdown 工具函数。"""
from scripts.core import (
get_heading_level,
extract_titles,
normalize_markdown_whitespace,
remove_markdown_images,
)
class TestGetHeadingLevel:
"""测试 get_heading_level 函数。"""
def test_h1(self):
assert get_heading_level("# 标题") == 1
def test_h2(self):
assert get_heading_level("## 子标题") == 2
def test_h6(self):
assert get_heading_level("###### 六级标题") == 6
def test_no_heading(self):
assert get_heading_level("普通文本") == 0
def test_no_space(self):
assert get_heading_level("#标题") == 0
class TestExtractTitles:
"""测试 extract_titles 函数。"""
def test_extract_multiple_titles(self, sample_markdown):
titles = extract_titles(sample_markdown)
assert len(titles) == 3
assert "# 标题" in titles
assert "## 子标题" in titles
assert "### 另一个标题" in titles
class TestNormalizeMarkdownWhitespace:
"""测试 normalize_markdown_whitespace 函数。"""
def test_multiple_blank_lines(self):
content = "line1\n\n\n\nline2"
result = normalize_markdown_whitespace(content)
assert result == "line1\n\nline2"
class TestRemoveMarkdownImages:
"""测试 remove_markdown_images 函数。"""
def test_remove_image(self):
content = "Text ![alt](image.png) more text"
result = remove_markdown_images(content)
assert "![alt](image.png)" not in result