def bullets_of_multiple_depth_are_converted_to_nested_lists(): document = openxml.document([ _paragraph_of_text("Food", style="Bullet1"), _paragraph_of_text("Apples", style="Bullet2"), _paragraph_of_text("Bananas", style="Bullet2"), _paragraph_of_text("Drinks", style="Bullet1"), ]) expected_html = html.fragment([ html.element("ul", [ html.element("li", [ html.text("Food"), html.element("ul", [ html.element("li", [html.text("Apples")]), html.element("li", [html.text("Bananas")]) ]) ]), html.element("li", [html.text("Drinks")]) ]) ]) generator = HtmlGenerator(paragraph_styles=[ styles.map_word_style("Bullet1").to(styles.unordered_list(depth=1)), styles.map_word_style("Bullet2").to(styles.unordered_list(depth=2)) ]) assert_equal(expected_html, generator.html_for_document(document))
def generating_html_for_document_concats_html_for_paragraphs(): document = openxml.document([ _paragraph_of_text("Hello"), _paragraph_of_text("there") ]) expected_html = html.fragment([ html.element("p", [html.text("Hello")]), html.element("p", [html.text("there")]) ]) generator = HtmlGenerator() assert_equal(expected_html, generator.html_for_document(document))
def word_document_containing_one_paragraph_is_read(): document_xml = _create_document_xml("<w:p><w:r><w:t>Hello.</w:t></w:r></w:p>") result = read_document(document_xml) expected_document = openxml.document([ openxml.paragraph([ openxml.run([ openxml.text("Hello.") ]) ]) ]) assert_equal(expected_document, result)
def consecutive_word_bullet_paragraphs_are_converted_to_single_html_list(): document = openxml.document([ _paragraph_of_text("Apples", style="Bullet1"), _paragraph_of_text("Bananas", style="Bullet1") ]) expected_html = html.fragment([ html.element("ul", [ html.element("li", [html.text("Apples")]), html.element("li", [html.text("Bananas")]) ]) ]) generator = HtmlGenerator(paragraph_styles=[ styles.map_word_style("Bullet1").to(styles.unordered_list()) ]) assert_equal(expected_html, generator.html_for_document(document))
def paragraph_style_is_read_from_paragraph_properties_element(): document_xml = _create_document_xml( "<w:p>" + """<w:pPr><w:pStyle w:val="Heading1"/></w:pPr>""" + "<w:r><w:t>Hello.</w:t></w:r>" + "</w:p>" ) result = read_document(document_xml) expected_document = openxml.document([ openxml.paragraph([ openxml.run([ openxml.text("Hello.") ]) ], style="Heading1") ]) assert_equal(expected_document, result)
def multiple_p_elements_are_read_as_multiple_paragraphs(): document_xml = _create_document_xml( "<w:p><w:r><w:t>Hello</w:t></w:r></w:p>" + "<w:p><w:r><w:t>there</w:t></w:r></w:p>" ) result = read_document(document_xml) expected_document = openxml.document([ openxml.paragraph([ openxml.run([ openxml.text("Hello") ]) ]), openxml.paragraph([ openxml.run([ openxml.text("there") ]) ]) ]) assert_equal(expected_document, result)
def paragraph_style_is_read_from_paragraph_properties_element(): document_xml = _create_document_xml(""" <w:p> <w:pPr> <w:pStyle w:val="ListParagraph"/> <w:numPr> <w:ilvl w:val="0"/> <w:numId w:val="1"/> </w:numPr> </w:pPr> <w:r><w:t>Hello.</w:t></w:r> </w:p>""" ) result = read_document(document_xml) expected_document = openxml.document([ openxml.paragraph([ openxml.run([ openxml.text("Hello.") ]) ], style="ListParagraph", numbering_level=0) ]) assert_equal(expected_document, result)