test_common.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import tempfile
  2. import os
  3. import shutil
  4. import pytest
  5. from magic_pdf.tools.common import do_parse
  6. @pytest.mark.parametrize("method", ["auto", "txt", "ocr"])
  7. def test_common_do_parse(method):
  8. # setup
  9. unitest_dir = "/tmp/magic_pdf/unittest/tools"
  10. filename = "fake"
  11. os.makedirs(unitest_dir, exist_ok=True)
  12. temp_output_dir = tempfile.mkdtemp(dir="/tmp/magic_pdf/unittest/tools")
  13. # run
  14. with open("tests/test_tools/assets/common/cli_test_01.pdf", "rb") as f:
  15. bits = f.read()
  16. do_parse(temp_output_dir, filename, bits, [], method, f_dump_content_list=True)
  17. # check
  18. base_output_dir = os.path.join(temp_output_dir, f"fake/{method}")
  19. r = os.stat(os.path.join(base_output_dir, "content_list.json"))
  20. assert r.st_size > 5000
  21. r = os.stat(os.path.join(base_output_dir, f"{filename}.md"))
  22. assert r.st_size > 7000
  23. r = os.stat(os.path.join(base_output_dir, "middle.json"))
  24. assert r.st_size > 200000
  25. r = os.stat(os.path.join(base_output_dir, "model.json"))
  26. assert r.st_size > 15000
  27. r = os.stat(os.path.join(base_output_dir, "origin.pdf"))
  28. assert r.st_size > 500000
  29. r = os.stat(os.path.join(base_output_dir, "layout.pdf"))
  30. assert r.st_size > 500000
  31. r = os.stat(os.path.join(base_output_dir, "spans.pdf"))
  32. assert r.st_size > 500000
  33. os.path.exists(os.path.join(base_output_dir, "images"))
  34. os.path.isdir(os.path.join(base_output_dir, "images"))
  35. # teardown
  36. shutil.rmtree(temp_output_dir)