- 创建 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 此变更使项目结构更清晰,便于区分核心代码与测试、文档等支撑文件。
57 lines
1.5 KiB
Python
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  more text"
|
|
result = remove_markdown_images(content)
|
|
assert "" not in result
|