From 841de73928538038496f15467aba9001b47a2d9c Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 14 Dec 2013 15:15:05 +0000 Subject: Add appending of other HTML generators --- mammoth/html_generation.py | 6 ++++++ tests/html_generation_tests.py | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/mammoth/html_generation.py b/mammoth/html_generation.py index c2d0240..e276bdc 100644 --- a/mammoth/html_generation.py +++ b/mammoth/html_generation.py @@ -37,6 +37,12 @@ class HtmlGenerator(object): attribute_string = _generate_attribute_string(element.attributes) self._fragments.append("<{0}{1}>".format(element.name, attribute_string)) + def append(self, other): + if other._fragments: + self._write_all() + for fragment in other._fragments: + self._fragments.append(fragment) + def html_string(self): return "".join(self._fragments) diff --git a/tests/html_generation_tests.py b/tests/html_generation_tests.py index fac6f05..f32b713 100644 --- a/tests/html_generation_tests.py +++ b/tests/html_generation_tests.py @@ -73,3 +73,21 @@ def opening_tag_can_have_attributes(): generator.text("Hello!") generator.end() assert_equal('

Hello!

', generator.html_string()) + + +@istest +def appending_another_html_generator_does_nothing_if_empty(): + generator = HtmlGenerator() + generator.start("p") + generator.append(HtmlGenerator()) + assert_equal('', generator.html_string()) + + +@istest +def appending_another_html_generator_writes_out_elements_if_other_generator_is_not_empty(): + generator = HtmlGenerator() + generator.start("p") + other = HtmlGenerator() + other.text("Hello!") + generator.append(other) + assert_equal('

Hello!', generator.html_string()) -- cgit v1.2.3