# coding=utf-8 from __future__ import unicode_literals from nose.tools import istest, assert_equal from .testing import test_path import mammoth @istest def docx_containing_one_paragraph_is_converted_to_single_p_element(): with open(test_path("single-paragraph.docx"), "rb") as fileobj: result = mammoth.convert_to_html(fileobj=fileobj) assert_equal("

Walking on imported air

", result.value) assert_equal([], result.messages) @istest def can_read_xml_files_with_utf8_bom(): with open(test_path("utf8-bom.docx"), "rb") as fileobj: result = mammoth.convert_to_html(fileobj=fileobj) assert_equal("

This XML has a byte order mark.

", result.value) assert_equal([], result.messages) @istest def inline_images_are_included_in_output(): with open(test_path("tiny-picture.docx"), "rb") as fileobj: result = mammoth.convert_to_html(fileobj=fileobj) assert_equal("""

""", result.value) assert_equal([], result.messages) @istest def simple_list_is_converted_to_list_elements(): with open(test_path("simple-list.docx"), "rb") as fileobj: result = mammoth.convert_to_html(fileobj=fileobj) assert_equal([], result.messages) assert_equal("", result.value) @istest def word_tables_are_converted_to_html_tables(): expected_html = ("

Above

" + "" + "" + "" + "

Top left

Top right

Bottom left

Bottom right

" + "

Below

") with open(test_path("tables.docx"), "rb") as fileobj: result = mammoth.convert_to_html(fileobj=fileobj) assert_equal([], result.messages) assert_equal(expected_html, result.value) @istest def footnotes_are_appended_to_text(): # TODO: don't duplicate footnotes with multiple references expected_html = ('

Ouch' + '[1].' + '[2]

' + '
  1. A tachyon walks into a bar. ↑

  2. ' + '
  3. Fin. ↑

') with open(test_path("footnotes.docx"), "rb") as fileobj: result = mammoth.convert_to_html(fileobj=fileobj, id_prefix="doc-42") assert_equal([], result.messages) assert_equal(expected_html, result.value) @istest def endnotes_are_appended_to_text(): expected_html = ('

Ouch' + '[1].' + '[2]

' + '
  1. A tachyon walks into a bar. ↑

  2. ' + '
  3. Fin. ↑

') with open(test_path("endnotes.docx"), "rb") as fileobj: result = mammoth.convert_to_html(fileobj=fileobj, id_prefix="doc-42") assert_equal([], result.messages) assert_equal(expected_html, result.value) @istest def transform_document_is_applied_to_document_before_conversion(): def transform_document(document): document.children[0].style_id = "Heading1" return document with open(test_path("single-paragraph.docx"), "rb") as fileobj: result = mammoth.convert_to_html(fileobj=fileobj, transform_document=transform_document) assert_equal("

Walking on imported air

", result.value) assert_equal([], result.messages) @istest def can_extract_raw_text(): with open(test_path("simple-list.docx"), "rb") as fileobj: result = mammoth.extract_raw_text(fileobj=fileobj) assert_equal([], result.messages) assert_equal("Apple\n\nBanana\n\n", result.value)