import importlib.util import logging import sys from pathlib import Path from types import ModuleType def _load_mineru_parser(monkeypatch): repo_root = Path(__file__).resolve().parents[4] deepdoc_mod = ModuleType("deepdoc") deepdoc_mod.__path__ = [str(repo_root / "deepdoc")] monkeypatch.setitem(sys.modules, "deepdoc", deepdoc_mod) parser_mod = ModuleType("deepdoc.parser") parser_mod.__path__ = [str(repo_root / "deepdoc" / "parser")] monkeypatch.setitem(sys.modules, "deepdoc.parser", parser_mod) pdf_parser_mod = ModuleType("deepdoc.parser.pdf_parser") class _RAGFlowPdfParser: pass pdf_parser_mod.RAGFlowPdfParser = _RAGFlowPdfParser monkeypatch.setitem(sys.modules, "deepdoc.parser.pdf_parser", pdf_parser_mod) utils_mod = ModuleType("deepdoc.parser.utils") utils_mod.extract_pdf_outlines = lambda *_args, **_kwargs: [] monkeypatch.setitem(sys.modules, "deepdoc.parser.utils", utils_mod) module_name = "test_mineru_parser_unit_module" module_path = repo_root / "deepdoc" / "parser" / "mineru_parser.py" spec = importlib.util.spec_from_file_location(module_name, module_path) module = importlib.util.module_from_spec(spec) monkeypatch.setitem(sys.modules, module_name, module) spec.loader.exec_module(module) return module def test_sanitize_section_text_removes_escaped_html_tags(monkeypatch): module = _load_mineru_parser(monkeypatch) text = "<table><tr><td>Alpha</td><td>Beta</td></tr></table>" sanitized = module.MinerUParser._sanitize_section_text(text) assert sanitized == "AlphaBeta" assert "