aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mammoth/html_generation.py2
-rw-r--r--tests/html_generation_tests.py12
2 files changed, 13 insertions, 1 deletions
diff --git a/mammoth/html_generation.py b/mammoth/html_generation.py
index 90a1401..66f2719 100644
--- a/mammoth/html_generation.py
+++ b/mammoth/html_generation.py
@@ -79,7 +79,7 @@ def satisfy_html_path(generator, path):
def _find_first_unsatisfied_index(generator, path):
for index, (generated_element, path_element) in enumerate(zip(generator._stack, path.elements)):
- if generated_element.name not in path_element.names:
+ if generated_element.name not in path_element.names or path_element.fresh:
return index
return len(generator._stack)
diff --git a/tests/html_generation_tests.py b/tests/html_generation_tests.py
index 4a8a43c..4322d69 100644
--- a/tests/html_generation_tests.py
+++ b/tests/html_generation_tests.py
@@ -126,3 +126,15 @@ class SatisfyPathTests(object):
satisfy_html_path(generator, path)
generator.text("there")
assert_equal('<blockquote><span>Hello</span><p>there', generator.html_string())
+
+
+ @istest
+ def fresh_element_matches_nothing(self):
+ generator = HtmlGenerator()
+ generator.start("blockquote")
+ generator.start("p")
+ generator.text("Hello")
+ path = html_paths.path([html_paths.element(["blockquote"]), html_paths.element(["p"], fresh=True)])
+ satisfy_html_path(generator, path)
+ generator.text("there")
+ assert_equal('<blockquote><p>Hello</p><p>there', generator.html_string())