Spaces:
Sleeping
Sleeping
| from io import BytesIO | |
| from pathlib import Path | |
| from docx import Document | |
| from document_tools import extract_docx_text | |
| def _save_docx_bytes(doc: Document) -> bytes: | |
| buffer = BytesIO() | |
| doc.save(buffer) | |
| return buffer.getvalue() | |
| def test_docx_text_extraction_preserves_interleaved_paragraph_table_order(): | |
| doc = Document() | |
| doc.add_paragraph("PAGINA_1_MARKER gewone tekst") | |
| table = doc.add_table(rows=1, cols=1) | |
| table.cell(0, 0).text = "PAGINA_2_MARKER tabeltekst" | |
| doc.add_paragraph("PAGINA_3_MARKER gewone tekst") | |
| roundtrip_doc = Document(BytesIO(_save_docx_bytes(doc))) | |
| text = extract_docx_text(roundtrip_doc) | |
| assert "PAGINA_1_MARKER" in text | |
| assert "PAGINA_2_MARKER" in text | |
| assert "PAGINA_3_MARKER" in text | |
| assert text.index("PAGINA_1_MARKER") < text.index("PAGINA_2_MARKER") < text.index("PAGINA_3_MARKER") | |
| def test_docx_text_order_test_uses_synthetic_markers_only(): | |
| doc = Document() | |
| doc.add_paragraph("PAGINA_1_MARKER gewone tekst") | |
| doc.add_paragraph("PAGINA_2_MARKER gewone tekst") | |
| extracted = extract_docx_text(Document(BytesIO(_save_docx_bytes(doc)))) | |
| forbidden_real_markers = ["BSN", "IBAN", "Samir", "Marrakech", "dossiernummer"] | |
| for marker in forbidden_real_markers: | |
| assert marker not in extracted | |