diff --git a/pypdf/_page.py b/pypdf/_page.py index e7b47882c..8bd803f8d 100644 --- a/pypdf/_page.py +++ b/pypdf/_page.py @@ -1080,6 +1080,7 @@ def _merge_page( return self._merge_page_writer( page2, page2transformation, ctm, over, expand ) + return None except (AssertionError, AttributeError): pass @@ -1172,6 +1173,7 @@ def _merge_page( self.replace_contents(ContentStream(new_content_array, self.pdf)) self[NameObject(PG.RESOURCES)] = new_resources self[NameObject(PG.ANNOTS)] = new_annots + return None def _merge_page_writer( self, diff --git a/pypdf/_writer.py b/pypdf/_writer.py index 3a21ccc53..d9215a091 100644 --- a/pypdf/_writer.py +++ b/pypdf/_writer.py @@ -2206,6 +2206,7 @@ def clean_forms( clean(content, images, forms, text_filters) page.replace_contents(content) + return [], [] # type: ignore def remove_images( self, @@ -3179,6 +3180,7 @@ def find_outline_item( o = cast(TreeObject, o["/Next"]) else: return None + return None # This line may be unreachable? def reset_translation( self, reader: Union[None, PdfReader, IndirectObject] = None diff --git a/pyproject.toml b/pyproject.toml index f0ba519cf..2d44cc222 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -179,7 +179,6 @@ ignore = [ "PT014", # Ruff bug: Duplicate of test case at index 1 in `@pytest_mark.parametrize` "PTH123", # `open()` should be replaced by `Path.open()` "PYI042", # Type alias `mode_str_type` should be CamelCase - "RET503", # Missing explicit `return` at the end of function able to return non-`None` value "RUF001", # Detect confusable Unicode-to-Unicode units. Introduces bugs "RUF002", # Detect confusable Unicode-to-Unicode units. Introduces bugs "S101", # Use of `assert` detected diff --git a/tests/test_merger.py b/tests/test_merger.py index f1eb2e78e..0d0510bf9 100644 --- a/tests/test_merger.py +++ b/tests/test_merger.py @@ -24,8 +24,12 @@ def merger_operate(merger): pdf_forms = RESOURCE_ROOT / "pdflatex-forms.pdf" pdf_pw = RESOURCE_ROOT / "libreoffice-writer-password.pdf" - # string path: merger.append(pdf_path) + + # For code coverage + found_oi = merger.find_outline_item("nothing here") + assert found_oi is None + merger.append(outline) merger.append(pdf_path, pages=pypdf.pagerange.PageRange(slice(0, 0))) merger.append(pdf_forms)