summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-06-17 15:05:19 +0100
committerMichael Williamson <mike@zwobble.org>2015-06-17 15:05:19 +0100
commit147fabb2b2e00f7790304b7a1e1f40cdb564cb4f (patch)
treefcd72fdbdf3681acd1dff8dd6237143a80914cfa /tests
parent35d3dd58400d5310fe05ebe8e070c96c756edac0 (diff)
Support underlines in style map
Diffstat (limited to 'tests')
-rw-r--r--tests/conversion_tests.py24
-rw-r--r--tests/html_generation_tests.py14
-rw-r--r--tests/mammoth_tests.py7
-rw-r--r--tests/style_reader_tests.py7
4 files changed, 50 insertions, 2 deletions
diff --git a/tests/conversion_tests.py b/tests/conversion_tests.py
index 4b5b461..19df77f 100644
--- a/tests/conversion_tests.py
+++ b/tests/conversion_tests.py
@@ -172,7 +172,7 @@ def underline_runs_are_ignored_by_default():
@istest
-def underline_runs_can_be_wrapped_in_tags():
+def underline_runs_can_be_wrapped_in_tags_using_convert_underline_argument():
result = convert_document_element_to_html(
documents.run(children=[documents.text("Hello")], is_underline=True),
convert_underline=mammoth.underline.element("u")
@@ -181,6 +181,28 @@ def underline_runs_can_be_wrapped_in_tags():
@istest
+def underline_runs_can_be_mapped_using_style_mapping():
+ result = convert_document_element_to_html(
+ documents.run(children=[documents.text("Hello")], is_underline=True),
+ style_map=[
+ style_reader.read_style("u => em")
+ ]
+ )
+ assert_equal("<em>Hello</em>", result.value)
+
+
+@istest
+def style_mapping_for_underline_runs_does_not_close_parent_elements():
+ result = convert_document_element_to_html(
+ documents.run(children=[documents.text("Hello")], is_underline=True, is_bold=True),
+ style_map=[
+ style_reader.read_style("u => em")
+ ]
+ )
+ assert_equal("<strong><em>Hello</em></strong>", result.value)
+
+
+@istest
def superscript_runs_are_wrapped_in_sup_tags():
result = convert_document_element_to_html(
documents.run(
diff --git a/tests/html_generation_tests.py b/tests/html_generation_tests.py
index ccb0e7e..2375564 100644
--- a/tests/html_generation_tests.py
+++ b/tests/html_generation_tests.py
@@ -1,6 +1,6 @@
from nose.tools import istest, assert_equal
-from mammoth.html_generation import HtmlGenerator, satisfy_html_path
+from mammoth.html_generation import HtmlGenerator, satisfy_html_path, append_html_path
from mammoth import html_paths, writers
@@ -171,5 +171,17 @@ class SatisfyPathTests(object):
assert_equal('<p class="tip">HelpTip', generator.as_string())
+@istest
+class AppendPathTests(object):
+ @istest
+ def already_opened_elements_are_not_closed(self):
+ generator = _create_html_generator()
+ generator.start("strong")
+ path = html_paths.path([html_paths.element(["em"])])
+ append_html_path(generator, path)
+ generator.text("Hello!")
+ assert_equal('<strong><em>Hello!', generator.as_string())
+
+
def _create_html_generator():
return HtmlGenerator(writers.writer)
diff --git a/tests/mammoth_tests.py b/tests/mammoth_tests.py
index a1b396c..e7e7e64 100644
--- a/tests/mammoth_tests.py
+++ b/tests/mammoth_tests.py
@@ -124,6 +124,13 @@ def underline_can_be_configured_with_convert_underline_option():
@istest
+def underline_can_be_configured_with_style_mapping():
+ with open(test_path("underline.docx"), "rb") as fileobj:
+ result = mammoth.convert_to_html(fileobj=fileobj, style_map="u => em")
+ assert_equal('<p><strong>The </strong><strong><em>Sunset</em></strong><strong> Tree</strong></p>', result.value)
+
+
+@istest
def transform_document_is_applied_to_document_before_conversion():
def transform_document(document):
document.children[0].style_id = "Heading1"
diff --git a/tests/style_reader_tests.py b/tests/style_reader_tests.py
index 464cb4a..501629a 100644
--- a/tests/style_reader_tests.py
+++ b/tests/style_reader_tests.py
@@ -134,6 +134,13 @@ class ReadDocumentMatcherTests(object):
read_document_matcher("r[style-name='Emphasis']")
)
+ @istest
+ def reads_underline(self):
+ assert_equal(
+ document_matchers.underline,
+ read_document_matcher("u")
+ )
+
@istest
def document_matcher_is_mapped_to_html_path_using_fat_arrow():