mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-09-29 11:32:19 +02:00
Squash Odysseus development history
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
"""Regression test: the '[PDF content]:' wrapper must be removed without eating
|
||||
into the page text that follows it.
|
||||
|
||||
The old call sites used ``str.lstrip("\\n[PDF content]:")``, which treats the
|
||||
argument as a *set of characters* and keeps stripping leading characters that
|
||||
happen to be in that set — corrupting the start of the extracted document.
|
||||
"""
|
||||
from src import document_processor
|
||||
from src.document_processor import strip_pdf_content_marker, _PDF_CONTENT_MARKER
|
||||
|
||||
|
||||
def test_marker_removed_without_eating_following_text():
|
||||
# Shape that _process_pdf actually returns: marker + "\n\n[Page 1 text]:" + body.
|
||||
raw = "\n\n[PDF content]:\n\n[Page 1 text]:\nto the board, content begins"
|
||||
out = strip_pdf_content_marker(raw)
|
||||
assert out == "[Page 1 text]:\nto the board, content begins"
|
||||
# The old lstrip approach produced "age 1 text]:..." (ate "[P" then "to").
|
||||
assert not out.startswith("age 1 text")
|
||||
|
||||
|
||||
def test_marker_constant_matches_processor_output():
|
||||
# If _process_pdf's prefix ever changes, this guards the consumer.
|
||||
assert _PDF_CONTENT_MARKER == "\n\n[PDF content]:"
|
||||
|
||||
|
||||
def test_text_without_marker_is_only_stripped():
|
||||
assert strip_pdf_content_marker(" plain text ") == "plain text"
|
||||
|
||||
|
||||
def test_handles_none():
|
||||
assert strip_pdf_content_marker(None) == ""
|
||||
|
||||
|
||||
def test_local_document_extraction_disables_embedded_image_analysis(monkeypatch, tmp_path):
|
||||
source = tmp_path / "brief.pdf"
|
||||
source.write_bytes(b"%PDF-1.4")
|
||||
observed = {}
|
||||
|
||||
def fake_process(path, owner=None, *, analyze_embedded_images=True):
|
||||
observed.update(
|
||||
path=path,
|
||||
owner=owner,
|
||||
analyze_embedded_images=analyze_embedded_images,
|
||||
)
|
||||
return "extracted"
|
||||
|
||||
monkeypatch.setattr(document_processor, "_process_pdf", fake_process)
|
||||
|
||||
result = document_processor.extract_local_document(str(source))
|
||||
|
||||
assert result == "extracted"
|
||||
assert observed == {
|
||||
"path": str(source),
|
||||
"owner": None,
|
||||
"analyze_embedded_images": False,
|
||||
}
|
||||
Reference in New Issue
Block a user