Skip to content

Commit e1b3b42

Browse files
authored
BUG: Guard empty input to prevent IndexError (#3448)
Closes #3446.
1 parent 0ceb8a4 commit e1b3b42

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

pypdf/_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@
7777

7878
def parse_iso8824_date(text: Optional[str]) -> Optional[datetime]:
7979
orgtext = text
80-
if text is None:
80+
if not text:
8181
return None
8282
if text[0].isdigit():
8383
text = "D:" + text

tests/test_utils.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -360,6 +360,18 @@ def test_parse_datetime(text, expected):
360360
assert date_str == expected
361361

362362

363+
@pytest.mark.parametrize(
364+
("text", "expected"),
365+
[
366+
("", None),
367+
(None, None),
368+
],
369+
)
370+
def test_parse_datetime_edge_cases(text, expected):
371+
date = parse_iso8824_date(text)
372+
assert date == expected
373+
374+
363375
def test_parse_datetime_err():
364376
with pytest.raises(ValueError) as ex:
365377
parse_iso8824_date("D:20210408T054711Z")

0 commit comments

Comments
 (0)