| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- from __future__ import annotations
- import argparse
- import sys
- from pathlib import Path
- ROOT = Path(__file__).resolve().parents[1]
- if str(ROOT) not in sys.path:
- sys.path.insert(0, str(ROOT))
- from app.conversion import convert_path_to_markdown
- def main() -> int:
- parser = argparse.ArgumentParser(
- description="Run smoke tests against sample files."
- )
- parser.add_argument(
- "sample_dir",
- nargs="?",
- default=r"D:\CodeSpace\personal-secretary\Scripts\Word转Markdown\测试文件",
- help="Directory containing sample files",
- )
- parser.add_argument(
- "--include-images",
- action="store_true",
- help="Inline local images when possible",
- )
- args = parser.parse_args()
- sample_dir = Path(args.sample_dir)
- failures: list[str] = []
- for path in sorted(sample_dir.iterdir()):
- if not path.is_file():
- continue
- try:
- markdown = convert_path_to_markdown(
- str(path), args.include_images, path.name
- )
- if not markdown.strip():
- raise RuntimeError("Empty markdown output")
- print(f"OK {path.name} -> {len(markdown)} chars")
- except Exception as exc: # noqa: BLE001
- failures.append(f"{path.name}: {exc}")
- print(f"FAIL {path.name}: {exc}")
- if failures:
- print("\nFailures:")
- for failure in failures:
- print(f"- {failure}")
- return 1
- return 0
- if __name__ == "__main__":
- raise SystemExit(main())
|