fix: _derive_title crashes on non-string content instead of returning Untitled (#1751)
This commit is contained in:
@@ -203,6 +203,8 @@ def _assert_pdf_marker_upload_owned(
|
|||||||
def _derive_title(content: str) -> str:
|
def _derive_title(content: str) -> str:
|
||||||
"""Derive a title from document content."""
|
"""Derive a title from document content."""
|
||||||
import re
|
import re
|
||||||
|
if not isinstance(content, str):
|
||||||
|
return "Untitled"
|
||||||
text = content.strip()
|
text = content.strip()
|
||||||
if not text:
|
if not text:
|
||||||
return "Untitled"
|
return "Untitled"
|
||||||
|
|||||||
13
tests/test_derive_title_nonstring.py
Normal file
13
tests/test_derive_title_nonstring.py
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
from routes.document_helpers import _derive_title
|
||||||
|
|
||||||
|
|
||||||
|
def test_derive_title_handles_non_string_content():
|
||||||
|
# content normally comes from a document text column, but the helper is
|
||||||
|
# public and a non-string (None / int) made content.strip() raise
|
||||||
|
# AttributeError instead of falling back to a default title.
|
||||||
|
assert _derive_title(None) == "Untitled"
|
||||||
|
assert _derive_title(123) == "Untitled"
|
||||||
|
|
||||||
|
|
||||||
|
def test_derive_title_still_reads_markdown_heading():
|
||||||
|
assert _derive_title("# Heading Title\nbody text") == "Heading Title"
|
||||||
Reference in New Issue
Block a user