aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/conversion_tests.py20
-rw-r--r--tests/docx/body_xml_tests.py35
-rw-r--r--tests/styles/parser/document_matcher_parser_tests.py27
3 files changed, 71 insertions, 11 deletions
diff --git a/tests/conversion_tests.py b/tests/conversion_tests.py
index 71fbbc7..3dfb9f3 100644
--- a/tests/conversion_tests.py
+++ b/tests/conversion_tests.py
@@ -365,12 +365,28 @@ def table_cells_are_written_with_rowspan_if_not_equal_to_one():
@istest
def line_break_is_converted_to_br():
- line_break = documents.line_break()
- result = convert_document_element_to_html(line_break)
+ result = convert_document_element_to_html(documents.line_break)
assert_equal("<br />", result.value)
@istest
+def breaks_that_are_not_line_breaks_are_ignored():
+ result = convert_document_element_to_html(documents.page_break)
+ assert_equal("", result.value)
+
+
+@istest
+def breaks_can_be_mapped_using_style_mappings():
+ result = convert_document_element_to_html(
+ documents.page_break,
+ style_map=[
+ _style_mapping("br[type='page'] => hr")
+ ],
+ )
+ assert_equal("<hr />", result.value)
+
+
+@istest
def images_are_converted_to_img_tags_with_data_uri():
image = documents.image(alt_text=None, content_type="image/png", open=lambda: io.BytesIO(b"abc"))
result = convert_document_element_to_html(image)
diff --git a/tests/docx/body_xml_tests.py b/tests/docx/body_xml_tests.py
index ccbd888..02d8b85 100644
--- a/tests/docx/body_xml_tests.py
+++ b/tests/docx/body_xml_tests.py
@@ -422,22 +422,39 @@ class ReadXmlElementTests(object):
documents.bookmark("start"),
_read_and_get_document_xml_element(element)
)
-
+
@istest
- def br_is_read_as_line_break(self):
+ def br_without_explicit_type_is_read_as_line_break(self):
break_element = xml_element("w:br", {}, [])
- result = _read_and_get_document_xml_element(break_element)
- assert_equal(result, documents.line_break())
-
-
+ result = _read_document_xml_element(break_element)
+ assert_equal(documents.line_break, result.value)
+
+ @istest
+ def br_with_text_wrapping_type_is_read_as_line_break(self):
+ break_element = xml_element("w:br", {"w:type": "textWrapping"}, [])
+ result = _read_document_xml_element(break_element)
+ assert_equal(documents.line_break, result.value)
+
@istest
- def warning_on_breaks_that_arent_line_breaks(self):
+ def br_with_page_type_is_read_as_page_break(self):
break_element = xml_element("w:br", {"w:type": "page"}, [])
result = _read_document_xml_element(break_element)
- expected_warning = results.warning("Unsupported break type: page")
+ assert_equal(documents.page_break, result.value)
+
+ @istest
+ def br_with_column_type_is_read_as_column_break(self):
+ break_element = xml_element("w:br", {"w:type": "column"}, [])
+ result = _read_document_xml_element(break_element)
+ assert_equal(documents.column_break, result.value)
+
+ @istest
+ def warning_on_break_types_that_arent_recognised(self):
+ break_element = xml_element("w:br", {"w:type": "unknownBreakType"}, [])
+ result = _read_document_xml_element(break_element)
+ expected_warning = results.warning("Unsupported break type: unknownBreakType")
assert_equal([expected_warning], result.messages)
assert_equal(None, result.value)
-
+
IMAGE_BYTES = b"Not an image at all!"
IMAGE_RELATIONSHIP_ID = "rId5"
diff --git a/tests/styles/parser/document_matcher_parser_tests.py b/tests/styles/parser/document_matcher_parser_tests.py
index 194d6fa..0286e7b 100644
--- a/tests/styles/parser/document_matcher_parser_tests.py
+++ b/tests/styles/parser/document_matcher_parser_tests.py
@@ -132,6 +132,33 @@ def reads_comment_reference():
read_document_matcher("comment-reference")
)
+@istest
+def reads_line_breaks():
+ assert_equal(
+ document_matchers.line_break,
+ read_document_matcher("br[type='line']"),
+ )
+
+@istest
+def reads_page_breaks():
+ assert_equal(
+ document_matchers.page_break,
+ read_document_matcher("br[type='page']"),
+ )
+
+@istest
+def reads_column_breaks():
+ assert_equal(
+ document_matchers.column_break,
+ read_document_matcher("br[type='column']"),
+ )
+
+
+@istest
+def unrecognised_break_type_raises_error():
+ error = assert_raises(LineParseError, lambda: read_document_matcher("br[type='unknownBreakType']"))
+ assert_equal("Unrecognised break type: unknownBreakType", str(error))
+
def read_document_matcher(string):
return parse_document_matcher(TokenIterator(tokenise(string)))