dougvk/Unlimited-OCR-RDNA4
0
1import pytest2from PIL import Image3 4from unlimited_ocr_rdna4.errors import InferenceError5from unlimited_ocr_rdna4.pdf import PDFPageRenderer6 7 8def _make_pdf(path) -> None:9 image = Image.new("RGB", (120, 80), "white")10 try:11 image.save(path, format="PDF", resolution=72)12 finally:13 image.close()14 15 16def test_pdf_renders_one_page_at_a_time(tmp_path) -> None:17 pdf = tmp_path / "fixture.pdf"18 _make_pdf(pdf)19 with PDFPageRenderer(20 pdf,21 tmp_path,22 dpi=72,23 start_page=1,24 max_pages=1,25 max_page_pixels=20_000,26 max_total_pixels=20_000,27 max_page_rendered_bytes=1_000_000,28 max_rendered_bytes=1_000_000,29 ) as renderer:30 assert tuple(renderer.page_numbers) == (1,)31 rendered = renderer.render(1)32 assert rendered.is_file()33 34 35def test_pdf_rejects_page_over_pixel_limit(tmp_path) -> None:36 pdf = tmp_path / "fixture.pdf"37 _make_pdf(pdf)38 with (39 PDFPageRenderer(40 pdf,41 tmp_path,42 dpi=72,43 start_page=1,44 max_pages=1,45 max_page_pixels=1_000,46 max_total_pixels=20_000,47 max_page_rendered_bytes=1_000_000,48 max_rendered_bytes=1_000_000,49 ) as renderer,50 pytest.raises(InferenceError, match="would render"),51 ):52 renderer.render(1)53 