From 7df40320101f3701493626dbb76296c60a5e187d Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Thu, 30 Jul 2026 21:25:35 +1000 Subject: [PATCH] Add test for linearize_page_tree() --- Tests/test_pdfparser.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/Tests/test_pdfparser.py b/Tests/test_pdfparser.py index 4c522eb7a50..9f58ce3aa24 100644 --- a/Tests/test_pdfparser.py +++ b/Tests/test_pdfparser.py @@ -2,6 +2,7 @@ import time import zlib +from io import BytesIO import pytest @@ -132,6 +133,31 @@ def test_pdf_repr() -> None: assert pdf_repr(PdfBinary(b"\x90\x1f\xa0")) == b"<901FA0>" +def test_linearize_page_tree() -> None: + b = BytesIO() + with PdfParser(f=b, mode="wb") as pdf: + pdf.start_writing() + pdf.write_header() + + pages_id = pdf.next_object_id(0) + page_ids = [pdf.next_object_id(0) for _ in range(3)] + for page_id in page_ids: + pdf.write_page(page_id) + pdf.write_obj( + pages_id, + Type=PdfName(b"Pages"), + Count=2, + Kids=[page_ids[0], page_ids[1]], + ) + + pdf.pages = [pages_id, page_ids[2]] + pdf.write_catalog() + pdf.write_xref_and_trailer() + + with PdfParser(f=b) as pdf: + assert pdf.linearize_page_tree() == page_ids + + def test_duplicate_xref_entry() -> None: pdf = PdfParser("Tests/images/duplicate_xref_entry.pdf") assert pdf.xref_table.existing_entries[6][0] == 1197