fix(file-summary): 避免无效 Office 文件触发 COM 统计
This commit is contained in:
@@ -77,6 +77,10 @@ def test_count_docx_pages_uses_word_com_fallback(monkeypatch, tmp_path):
|
||||
def test_count_doc_pages_uses_word_com_fallback(monkeypatch, tmp_path):
|
||||
doc_path = tmp_path / "legacy.doc"
|
||||
doc_path.write_bytes(b"legacy-doc-placeholder")
|
||||
monkeypatch.setattr(
|
||||
"review_agent.file_summary.services.page_count._can_try_com_fallback",
|
||||
lambda path, ext: True,
|
||||
)
|
||||
monkeypatch.setattr(
|
||||
"review_agent.file_summary.services.page_count._count_word_pages_with_com",
|
||||
lambda path: 5,
|
||||
@@ -91,6 +95,10 @@ def test_count_doc_pages_uses_word_com_fallback(monkeypatch, tmp_path):
|
||||
def test_count_ppt_pages_uses_powerpoint_com_fallback(monkeypatch, tmp_path):
|
||||
ppt_path = tmp_path / "legacy.ppt"
|
||||
ppt_path.write_bytes(b"legacy-ppt-placeholder")
|
||||
monkeypatch.setattr(
|
||||
"review_agent.file_summary.services.page_count._can_try_com_fallback",
|
||||
lambda path, ext: True,
|
||||
)
|
||||
monkeypatch.setattr(
|
||||
"review_agent.file_summary.services.page_count._count_powerpoint_slides_with_com",
|
||||
lambda path: 9,
|
||||
@@ -105,6 +113,10 @@ def test_count_ppt_pages_uses_powerpoint_com_fallback(monkeypatch, tmp_path):
|
||||
def test_count_excel_pages_uses_excel_com_fallback(monkeypatch, tmp_path):
|
||||
xls_path = tmp_path / "legacy.xls"
|
||||
xls_path.write_bytes(b"legacy-xls-placeholder")
|
||||
monkeypatch.setattr(
|
||||
"review_agent.file_summary.services.page_count._can_try_com_fallback",
|
||||
lambda path, ext: True,
|
||||
)
|
||||
monkeypatch.setattr(
|
||||
"review_agent.file_summary.services.page_count._count_excel_sheets_with_com",
|
||||
lambda path: 3,
|
||||
@@ -116,6 +128,23 @@ def test_count_excel_pages_uses_excel_com_fallback(monkeypatch, tmp_path):
|
||||
assert result.page_count == 3
|
||||
|
||||
|
||||
def test_invalid_xlsx_does_not_start_excel_com(monkeypatch, tmp_path):
|
||||
xlsx_path = tmp_path / "broken.xlsx"
|
||||
xlsx_path.write_bytes(b"not a real workbook")
|
||||
|
||||
def fail_if_called(path):
|
||||
raise AssertionError("Excel COM should not start for invalid xlsx signatures")
|
||||
|
||||
monkeypatch.setattr(
|
||||
"review_agent.file_summary.services.page_count._count_excel_sheets_with_com",
|
||||
fail_if_called,
|
||||
)
|
||||
|
||||
result = count_document_pages(xlsx_path)
|
||||
|
||||
assert result.status == "uncertain"
|
||||
|
||||
|
||||
def test_document_page_count_skill_marks_unsupported_and_success(tmp_path, django_user_model):
|
||||
xlsx_path = tmp_path / "a.xlsx"
|
||||
workbook = Workbook()
|
||||
|
||||
Reference in New Issue
Block a user