test(api): add autospec to MagicMock-based patch usage (#32752)

This commit is contained in:
-LAN-
2026-03-01 04:30:45 +08:00
committed by GitHub
parent c034eb036c
commit 20fcc95db9
86 changed files with 865 additions and 804 deletions

View File

@ -83,7 +83,7 @@ def test_extract_images_formats(mock_dependencies, monkeypatch, image_bytes, exp
extractor = pe.PdfExtractor(file_path="test.pdf", tenant_id="t1", user_id="u1")
# We need to handle the import inside _extract_images
with patch("pypdfium2.raw") as mock_raw:
with patch("pypdfium2.raw", autospec=True) as mock_raw:
mock_raw.FPDF_PAGEOBJ_IMAGE = 1
result = extractor._extract_images(mock_page)
@ -115,7 +115,7 @@ def test_extract_images_get_objects_scenarios(mock_dependencies, get_objects_sid
extractor = pe.PdfExtractor(file_path="test.pdf", tenant_id="t1", user_id="u1")
with patch("pypdfium2.raw") as mock_raw:
with patch("pypdfium2.raw", autospec=True) as mock_raw:
mock_raw.FPDF_PAGEOBJ_IMAGE = 1
result = extractor._extract_images(mock_page)
@ -133,11 +133,11 @@ def test_extract_calls_extract_images(mock_dependencies, monkeypatch):
mock_text_page.get_text_range.return_value = "Page text content"
mock_page.get_textpage.return_value = mock_text_page
with patch("pypdfium2.PdfDocument", return_value=mock_pdf_doc):
with patch("pypdfium2.PdfDocument", return_value=mock_pdf_doc, autospec=True):
# Mock Blob
mock_blob = MagicMock()
mock_blob.source = "test.pdf"
with patch("core.rag.extractor.pdf_extractor.Blob.from_path", return_value=mock_blob):
with patch("core.rag.extractor.pdf_extractor.Blob.from_path", return_value=mock_blob, autospec=True):
extractor = pe.PdfExtractor(file_path="test.pdf", tenant_id="t1", user_id="u1")
# Mock _extract_images to return a known string
@ -175,7 +175,7 @@ def test_extract_images_failures(mock_dependencies):
extractor = pe.PdfExtractor(file_path="test.pdf", tenant_id="t1", user_id="u1")
with patch("pypdfium2.raw") as mock_raw:
with patch("pypdfium2.raw", autospec=True) as mock_raw:
mock_raw.FPDF_PAGEOBJ_IMAGE = 1
result = extractor._extract_images(mock_page)

View File

@ -52,7 +52,7 @@ class TestRerankModelRunner:
@pytest.fixture(autouse=True)
def mock_model_manager(self):
"""Auto-use fixture to patch ModelManager for all tests in this class."""
with patch("core.rag.rerank.rerank_model.ModelManager") as mock_mm:
with patch("core.rag.rerank.rerank_model.ModelManager", autospec=True) as mock_mm:
mock_mm.return_value.check_model_support_vision.return_value = False
yield mock_mm
@ -397,19 +397,19 @@ class TestWeightRerankRunner:
@pytest.fixture
def mock_model_manager(self):
"""Mock ModelManager for embedding model."""
with patch("core.rag.rerank.weight_rerank.ModelManager") as mock_manager:
with patch("core.rag.rerank.weight_rerank.ModelManager", autospec=True) as mock_manager:
yield mock_manager
@pytest.fixture
def mock_cache_embedding(self):
"""Mock CacheEmbedding for vector operations."""
with patch("core.rag.rerank.weight_rerank.CacheEmbedding") as mock_cache:
with patch("core.rag.rerank.weight_rerank.CacheEmbedding", autospec=True) as mock_cache:
yield mock_cache
@pytest.fixture
def mock_jieba_handler(self):
"""Mock JiebaKeywordTableHandler for keyword extraction."""
with patch("core.rag.rerank.weight_rerank.JiebaKeywordTableHandler") as mock_jieba:
with patch("core.rag.rerank.weight_rerank.JiebaKeywordTableHandler", autospec=True) as mock_jieba:
yield mock_jieba
@pytest.fixture
@ -914,7 +914,7 @@ class TestRerankIntegration:
@pytest.fixture(autouse=True)
def mock_model_manager(self):
"""Auto-use fixture to patch ModelManager for all tests in this class."""
with patch("core.rag.rerank.rerank_model.ModelManager") as mock_mm:
with patch("core.rag.rerank.rerank_model.ModelManager", autospec=True) as mock_mm:
mock_mm.return_value.check_model_support_vision.return_value = False
yield mock_mm
@ -1026,7 +1026,7 @@ class TestRerankEdgeCases:
@pytest.fixture(autouse=True)
def mock_model_manager(self):
"""Auto-use fixture to patch ModelManager for all tests in this class."""
with patch("core.rag.rerank.rerank_model.ModelManager") as mock_mm:
with patch("core.rag.rerank.rerank_model.ModelManager", autospec=True) as mock_mm:
mock_mm.return_value.check_model_support_vision.return_value = False
yield mock_mm
@ -1295,9 +1295,9 @@ class TestRerankEdgeCases:
# Mock dependencies
with (
patch("core.rag.rerank.weight_rerank.JiebaKeywordTableHandler") as mock_jieba,
patch("core.rag.rerank.weight_rerank.ModelManager") as mock_manager,
patch("core.rag.rerank.weight_rerank.CacheEmbedding") as mock_cache,
patch("core.rag.rerank.weight_rerank.JiebaKeywordTableHandler", autospec=True) as mock_jieba,
patch("core.rag.rerank.weight_rerank.ModelManager", autospec=True) as mock_manager,
patch("core.rag.rerank.weight_rerank.CacheEmbedding", autospec=True) as mock_cache,
):
mock_handler = MagicMock()
mock_handler.extract_keywords.return_value = ["test"]
@ -1367,7 +1367,7 @@ class TestRerankPerformance:
@pytest.fixture(autouse=True)
def mock_model_manager(self):
"""Auto-use fixture to patch ModelManager for all tests in this class."""
with patch("core.rag.rerank.rerank_model.ModelManager") as mock_mm:
with patch("core.rag.rerank.rerank_model.ModelManager", autospec=True) as mock_mm:
mock_mm.return_value.check_model_support_vision.return_value = False
yield mock_mm
@ -1441,9 +1441,9 @@ class TestRerankPerformance:
runner = WeightRerankRunner(tenant_id="tenant123", weights=weights)
with (
patch("core.rag.rerank.weight_rerank.JiebaKeywordTableHandler") as mock_jieba,
patch("core.rag.rerank.weight_rerank.ModelManager") as mock_manager,
patch("core.rag.rerank.weight_rerank.CacheEmbedding") as mock_cache,
patch("core.rag.rerank.weight_rerank.JiebaKeywordTableHandler", autospec=True) as mock_jieba,
patch("core.rag.rerank.weight_rerank.ModelManager", autospec=True) as mock_manager,
patch("core.rag.rerank.weight_rerank.CacheEmbedding", autospec=True) as mock_cache,
):
mock_handler = MagicMock()
# Track keyword extraction calls
@ -1484,7 +1484,7 @@ class TestRerankErrorHandling:
@pytest.fixture(autouse=True)
def mock_model_manager(self):
"""Auto-use fixture to patch ModelManager for all tests in this class."""
with patch("core.rag.rerank.rerank_model.ModelManager") as mock_mm:
with patch("core.rag.rerank.rerank_model.ModelManager", autospec=True) as mock_mm:
mock_mm.return_value.check_model_support_vision.return_value = False
yield mock_mm
@ -1592,9 +1592,9 @@ class TestRerankErrorHandling:
runner = WeightRerankRunner(tenant_id="tenant123", weights=weights)
with (
patch("core.rag.rerank.weight_rerank.JiebaKeywordTableHandler") as mock_jieba,
patch("core.rag.rerank.weight_rerank.ModelManager") as mock_manager,
patch("core.rag.rerank.weight_rerank.CacheEmbedding") as mock_cache,
patch("core.rag.rerank.weight_rerank.JiebaKeywordTableHandler", autospec=True) as mock_jieba,
patch("core.rag.rerank.weight_rerank.ModelManager", autospec=True) as mock_manager,
patch("core.rag.rerank.weight_rerank.CacheEmbedding", autospec=True) as mock_cache,
):
mock_handler = MagicMock()
mock_handler.extract_keywords.return_value = ["test"]