fix: _derive_title crashes on non-string content instead of returning Untitled (#1751)
This commit is contained in:
parent
2625e97f11
commit
a714915afe
2 changed files with 15 additions and 0 deletions
|
|
@ -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"
|
||||||
Loading…
Add table
Reference in a new issue