summaryrefslogtreecommitdiff
path: root/tests/html_generation_tests.py
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2013-12-14 15:28:03 +0000
committerMichael Williamson <mike@zwobble.org>2013-12-14 15:28:03 +0000
commit8cf77f91fa81823af6c84ed7ca97a3a21dc89d6b (patch)
tree6713bc4871635c34605f8fb79a84237dc97004a0 /tests/html_generation_tests.py
parent841de73928538038496f15467aba9001b47a2d9c (diff)
Generate HTML to satisfy HTML paths
Diffstat (limited to 'tests/html_generation_tests.py')
-rw-r--r--tests/html_generation_tests.py37
1 files changed, 36 insertions, 1 deletions
diff --git a/tests/html_generation_tests.py b/tests/html_generation_tests.py
index f32b713..4a8a43c 100644
--- a/tests/html_generation_tests.py
+++ b/tests/html_generation_tests.py
@@ -1,6 +1,7 @@
from nose.tools import istest, assert_equal
-from mammoth.html_generation import HtmlGenerator
+from mammoth.html_generation import HtmlGenerator, satisfy_html_path
+from mammoth import html_paths
@istest
@@ -91,3 +92,37 @@ def appending_another_html_generator_writes_out_elements_if_other_generator_is_n
other.text("Hello!")
generator.append(other)
assert_equal('<p>Hello!', generator.html_string())
+
+
+@istest
+class SatisfyPathTests(object):
+ @istest
+ def plain_elements_are_generated_to_satisfy_plain_path_elements(self):
+ generator = HtmlGenerator()
+ path = html_paths.path([html_paths.element(["p"])])
+ satisfy_html_path(generator, path)
+ generator.text("Hello!")
+ assert_equal('<p>Hello!', generator.html_string())
+
+
+ @istest
+ def only_missing_elements_are_generated_to_satisfy_plain_path_elements(self):
+ generator = HtmlGenerator()
+ generator.start("blockquote")
+ generator.text("Hello")
+ path = html_paths.path([html_paths.element(["blockquote"]), html_paths.element(["p"])])
+ satisfy_html_path(generator, path)
+ generator.text("there")
+ assert_equal('<blockquote>Hello<p>there', generator.html_string())
+
+
+ @istest
+ def mismatched_elements_are_closed_to_satisfy_plain_path_elements(self):
+ generator = HtmlGenerator()
+ generator.start("blockquote")
+ generator.start("span")
+ generator.text("Hello")
+ path = html_paths.path([html_paths.element(["blockquote"]), html_paths.element(["p"])])
+ satisfy_html_path(generator, path)
+ generator.text("there")
+ assert_equal('<blockquote><span>Hello</span><p>there', generator.html_string())