chore: ruff lint 修复 + 第一优先级全部完成

This commit is contained in:
2026-07-11 19:50:35 +08:00
parent 3e51e166c2
commit 2d0e8c4997
28 changed files with 67 additions and 63 deletions
+2 -2
View File
@@ -1,11 +1,11 @@
"""认证与速率限制测试."""
import time
import threading
import time
import pytest
from fastapi import HTTPException
from src.server.auth import verify_api_key, RateLimiter
from src.server.auth import RateLimiter, verify_api_key
class TestVerifyApiKey:
+1
View File
@@ -1,5 +1,6 @@
"""CLI 命令测试."""
from typer.testing import CliRunner
from src.cli.main import app
runner = CliRunner()
+1 -4
View File
@@ -1,11 +1,8 @@
"""配置加载模块测试."""
import os
import tempfile
from pathlib import Path
import pytest
from src.core.config import AppConfig, EmbedConfig, ChunkConfig, load_config
from src.core.config import AppConfig, EmbedConfig, load_config
class TestEmbedConfig:
-1
View File
@@ -1,5 +1,4 @@
"""数据库层测试."""
import gc
import tempfile
from pathlib import Path
-3
View File
@@ -1,10 +1,7 @@
"""AppState 和依赖注入测试."""
import os
import tempfile
import pytest
from src.core.config import load_config
from src.server.deps import AppState
+6 -2
View File
@@ -3,8 +3,12 @@ import pytest
from src.core.config import EmbedConfig
from src.core.embedder import (
LocalEmbedder, OpenAIEmbedder, DashscopeEmbedder,
create_embedder, batch_embed, SUPPORTED_PROVIDERS,
SUPPORTED_PROVIDERS,
DashscopeEmbedder,
LocalEmbedder,
OpenAIEmbedder,
batch_embed,
create_embedder,
)
+5 -14
View File
@@ -4,8 +4,8 @@ from pathlib import Path
import pytest
from src.core.splitters import MarkdownSplitter
from src.core.ingest import DocumentIngestor
from src.core.splitters import MarkdownSplitter
class TestMarkdownSplitter:
@@ -122,7 +122,6 @@ class TestIngestorIntegration:
from src.core.config import EmbedConfig
from src.core.db import VectorDB
from src.core.embedder import create_embedder
from src.core.ingest import DocumentIngestor
db = VectorDB(persist_dir=str(tmp_path))
embedder = create_embedder(EmbedConfig(mode="local"))
@@ -137,13 +136,12 @@ class TestIngestorIntegration:
from src.core.config import EmbedConfig
from src.core.db import VectorDB
from src.core.embedder import create_embedder
from src.core.ingest import DocumentIngestor
db = VectorDB(persist_dir=str(tmp_path))
embedder = create_embedder(EmbedConfig(mode="local"))
ingestor = DocumentIngestor(db, embedder, "test_dedup")
c1 = ingestor.ingest_content("# A", "dup.md")
ingestor.ingest_content("# A", "dup.md")
c2 = ingestor.ingest_content("# B", "dup.md")
assert ingestor.collection.count() == c2
@@ -156,7 +154,6 @@ class TestIngestFile:
from src.core.config import EmbedConfig
from src.core.db import VectorDB
from src.core.embedder import create_embedder
from src.core.ingest import DocumentIngestor
md_file = tmp_path / "hello.md"
md_file.write_text("# 测试\n这是测试内容。", encoding="utf-8")
@@ -174,7 +171,6 @@ class TestIngestFile:
from src.core.config import EmbedConfig
from src.core.db import VectorDB
from src.core.embedder import create_embedder
from src.core.ingest import DocumentIngestor
txt_file = tmp_path / "notes.txt"
txt_file.write_text("这是一段纯文本内容。\n\n第二段内容在这里。", encoding="utf-8")
@@ -195,7 +191,6 @@ class TestIngestDirectory:
from src.core.config import EmbedConfig
from src.core.db import VectorDB
from src.core.embedder import create_embedder
from src.core.ingest import DocumentIngestor
(tmp_path / "a.md").write_text("# A\n内容 A", encoding="utf-8")
(tmp_path / "b.txt").write_text("内容 B", encoding="utf-8")
@@ -213,7 +208,6 @@ class TestIngestDirectory:
from src.core.config import EmbedConfig
from src.core.db import VectorDB
from src.core.embedder import create_embedder
from src.core.ingest import DocumentIngestor
db = VectorDB(persist_dir=str(tmp_path / "db"))
embedder = create_embedder(EmbedConfig(mode="local"))
@@ -228,10 +222,9 @@ class TestIncrementalIngest:
def test_ingest_file_incremental_skips_unchanged(self, tmp_path):
"""增量模式: 未修改的文件跳过入库."""
from src.core.config import EmbedConfig, ChunkConfig
from src.core.config import ChunkConfig, EmbedConfig
from src.core.db import VectorDB
from src.core.embedder import create_embedder
from src.core.ingest import DocumentIngestor
from src.core.file_tracker import FileTracker
file = tmp_path / "stable.md"
@@ -251,10 +244,9 @@ class TestIncrementalIngest:
def test_ingest_file_incremental_reingests_modified(self, tmp_path):
"""增量模式: 修改后的文件重新入库."""
from src.core.config import EmbedConfig, ChunkConfig
from src.core.config import ChunkConfig, EmbedConfig
from src.core.db import VectorDB
from src.core.embedder import create_embedder
from src.core.ingest import DocumentIngestor
from src.core.file_tracker import FileTracker
file = tmp_path / "changing.md"
@@ -275,10 +267,9 @@ class TestIncrementalIngest:
def test_ingest_file_force_mode_always_reingests(self, tmp_path):
"""force=True 时始终重新入库(忽略 tracker)."""
from src.core.config import EmbedConfig, ChunkConfig
from src.core.config import ChunkConfig, EmbedConfig
from src.core.db import VectorDB
from src.core.embedder import create_embedder
from src.core.ingest import DocumentIngestor
from src.core.file_tracker import FileTracker
file = tmp_path / "force.md"
-1
View File
@@ -1,5 +1,4 @@
"""重排序器测试."""
import pytest
from src.core.reranker import Reranker
-1
View File
@@ -1,5 +1,4 @@
"""is_safe_path 路径遍历防护测试."""
import pytest
from src.core.security import is_safe_path
+7 -2
View File
@@ -1,6 +1,11 @@
"""Splitter 注册表和 TextSplitter 测试."""
import pytest
from src.core.splitters import TextSplitter, MarkdownSplitter, get_splitter, register_splitter, SUPPORTED_SUFFIXES
from src.core.splitters import (
SUPPORTED_SUFFIXES,
MarkdownSplitter,
TextSplitter,
get_splitter,
register_splitter,
)
class TestTextSplitter:
+2 -1
View File
@@ -28,9 +28,10 @@ class TestEPUBSplitter:
def test_split_simple_epub(self, tmp_path):
"""用 ebooklib 创建一个简单 EPUB 并测试分块."""
from src.core.splitters.epub import EPUBSplitter
from ebooklib import epub
from src.core.splitters.epub import EPUBSplitter
epub_path = tmp_path / "test.epub"
book = epub.EpubBook()
+1
View File
@@ -1,5 +1,6 @@
"""MarkdownSplitter 边界测试."""
import pytest
from src.core.splitters import MarkdownSplitter
+5 -3
View File
@@ -1,6 +1,6 @@
"""PDFSplitter 测试."""
import pytest
from pathlib import Path
pymupdf = pytest.importorskip("fitz", reason="pymupdf 未安装")
@@ -10,9 +10,10 @@ class TestPDFSplitter:
def test_split_simple_pdf(self, tmp_path):
"""用 pymupdf 创建一个简单 PDF 并测试分块."""
from src.core.splitters.pdf import PDFSplitter
import fitz
from src.core.splitters.pdf import PDFSplitter
pdf_path = tmp_path / "test.pdf"
doc = fitz.open()
# 插入纯 ASCII 文本避免 CJK 字体编码问题
@@ -29,9 +30,10 @@ class TestPDFSplitter:
def test_empty_pdf(self, tmp_path):
"""空 PDF(有页但无文字)返回空列表."""
from src.core.splitters.pdf import PDFSplitter
import fitz
from src.core.splitters.pdf import PDFSplitter
pdf_path = tmp_path / "empty.pdf"
doc = fitz.open()
doc.new_page() # pymupdf 必须有至少一页才能保存