aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mammoth/html_generation.py17
-rw-r--r--tests/html_generation_tests.py16
2 files changed, 33 insertions, 0 deletions
diff --git a/mammoth/html_generation.py b/mammoth/html_generation.py
new file mode 100644
index 0000000..eb68266
--- /dev/null
+++ b/mammoth/html_generation.py
@@ -0,0 +1,17 @@
+import cgi
+
+
+class HtmlGenerator(object):
+ def __init__(self):
+ self._fragments = []
+
+ def text(self, text):
+ self._fragments.append(_escape_html(text))
+
+
+ def html_string(self):
+ return "".join(self._fragments)
+
+
+def _escape_html(text):
+ return cgi.escape(text, quote=True)
diff --git a/tests/html_generation_tests.py b/tests/html_generation_tests.py
new file mode 100644
index 0000000..68034d9
--- /dev/null
+++ b/tests/html_generation_tests.py
@@ -0,0 +1,16 @@
+from nose.tools import istest, assert_equal
+
+from mammoth.html_generation import HtmlGenerator
+
+
+@istest
+def generates_empty_string_when_newly_created():
+ generator = HtmlGenerator()
+ assert_equal("", generator.html_string())
+
+
+@istest
+def html_escapes_text():
+ generator = HtmlGenerator()
+ generator.text("<")
+ assert_equal("&lt;", generator.html_string())