aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mammoth/conversion.py8
-rw-r--r--tests/conversion_tests.py20
2 files changed, 25 insertions, 3 deletions
diff --git a/mammoth/conversion.py b/mammoth/conversion.py
index 624f6cb..e3a6fe1 100644
--- a/mammoth/conversion.py
+++ b/mammoth/conversion.py
@@ -9,11 +9,12 @@ def convert_document_element_to_html(element, styles=None):
converter = DocumentConverter(styles)
converter.convert_element_to_html(element, html_generator)
html_generator.end_all()
- return results.success(html_generator.html_string())
+ return results.Result(html_generator.html_string(), converter.messages)
class DocumentConverter(object):
def __init__(self, styles):
+ self.messages = []
self._styles = styles
self._converters = {
documents.Document: self._convert_document,
@@ -57,5 +58,8 @@ class DocumentConverter(object):
document_matcher.style_name is None or
document_matcher.style_name == paragraph.style_name):
return style.html_path
-
+
+ if paragraph.style_name is not None:
+ self.messages.append(results.warning("Unrecognised paragraph style: {0}".format(paragraph.style_name)))
+
return html_paths.path([html_paths.element("p")])
diff --git a/tests/conversion_tests.py b/tests/conversion_tests.py
index d05a103..647f58c 100644
--- a/tests/conversion_tests.py
+++ b/tests/conversion_tests.py
@@ -1,6 +1,6 @@
from nose.tools import istest, assert_equal
-from mammoth import documents, style_reader
+from mammoth import documents, style_reader, results
from mammoth.conversion import convert_document_element_to_html
@@ -54,6 +54,24 @@ def default_paragraph_style_is_specified_by_mapping_plain_paragraphs():
]
)
assert_equal('<p class="tip">Tip</p>', result.value)
+
+
+@istest
+def warning_is_emitted_if_paragraph_style_is_unrecognised():
+ result = convert_document_element_to_html(
+ documents.paragraph(style_name="TipsParagraph", children=[
+ _run_with_text("Tip")
+ ]),
+ )
+ assert_equal([results.warning("Unrecognised paragraph style: TipsParagraph")], result.messages)
+
+
+@istest
+def no_warning_if_there_is_no_style_for_plain_paragraphs():
+ result = convert_document_element_to_html(
+ documents.paragraph(children=[_run_with_text("Tip")]),
+ )
+ assert_equal([], result.messages)
def _run_with_text(text):