Files
jobtrackingapp/docs/cv-import/benchmarks/test_generate.py
T

46 lines
2.3 KiB
Python

import tempfile
from pathlib import Path
import unittest
from generate import generate_case
from docx import Document
from pypdf import PdfReader
class GeneratorTests(unittest.TestCase):
def test_short_body_sentences_are_not_structural_headings(self):
with tempfile.TemporaryDirectory() as directory:
files = generate_case({"id": "styles", "layout": "single", "lines": ["Work Experience", "Built release tools.", "Skills", "C#; SQL"]}, Path(directory))
styles = [p.style.name for p in Document(files["docx"]).paragraphs]
self.assertEqual(styles, ["Heading 2", "Normal", "Heading 2", "Normal"])
def test_pdf_preserves_unicode_and_explicit_page_break(self):
with tempfile.TemporaryDirectory() as directory:
files = generate_case({"id": "unicode", "layout": "multipage", "lines": ["Åse Øvrebø", "PAGE_BREAK", "Tromsø"]}, Path(directory))
pages = PdfReader(files["pdf"]).pages
self.assertEqual(len(pages), 2)
self.assertIn("Åse Øvrebø", pages[0].extract_text())
self.assertIn("Tromsø", pages[1].extract_text())
def test_docx_contains_actual_table_cells(self):
with tempfile.TemporaryDirectory() as directory:
files = generate_case({"id": "table", "layout": "table", "lines": ["Education", "Diploma | College | 2010 - 2012"]}, Path(directory))
document = Document(files["docx"])
self.assertEqual([cell.text for cell in document.tables[0].rows[0].cells], ["Diploma", "College", "2010 - 2012"])
def test_scan_has_no_extractable_pdf_text(self):
with tempfile.TemporaryDirectory() as directory:
files = generate_case({"id": "scan", "layout": "scan", "lines": ["Synthetic image only"]}, Path(directory))
self.assertEqual(PdfReader(files["pdf"]).pages[0].extract_text(), "")
self.assertNotIn("docx", files)
def test_refuses_reusing_fixture_output(self):
with tempfile.TemporaryDirectory() as directory:
case = {"id": "one", "layout": "single", "lines": ["Synthetic"]}
generate_case(case, Path(directory))
with self.assertRaises(FileExistsError):
generate_case(case, Path(directory))
if __name__ == "__main__":
unittest.main()