summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--coverage/templite.py6
-rw-r--r--test/test_templite.py10
2 files changed, 16 insertions, 0 deletions
diff --git a/coverage/templite.py b/coverage/templite.py
index 23c805b1..3b2efebd 100644
--- a/coverage/templite.py
+++ b/coverage/templite.py
@@ -18,6 +18,10 @@ class Templite(object):
{% for var in list %}...{% endfor %}
+ Comments are within curly-hash markers::
+
+ {# This will be ignored #}
+
Construct a Templite with the template text, then use `render` against a
dictionary context to create a finished string.
@@ -61,6 +65,8 @@ class Templite(object):
def _prepare(self, text):
"""Convert Django-style data references into Python-native ones."""
+ # Remove comments.
+ text = re.sub(r"(?s){#.*?#}", "", text)
# Pull out loops.
text = re.sub(
r"(?s){% for ([a-z0-9_]+) in ([a-z0-9_.|]+) %}(.*?){% endfor %}",
diff --git a/test/test_templite.py b/test/test_templite.py
index 6102183d..4c7545bf 100644
--- a/test/test_templite.py
+++ b/test/test_templite.py
@@ -126,6 +126,16 @@ class TempliteTest(unittest.TestCase):
"123 and 123"
)
+ def test_comments(self):
+ # Single-line comments work:
+ self.try_render(
+ "Hello, {# Name goes here: #}{{name}}!",
+ {'name':'Ned'}, "Hello, Ned!")
+ # and so do multi-line comments:
+ self.try_render(
+ "Hello, {# Name\ngoes\nhere: #}{{name}}!",
+ {'name':'Ned'}, "Hello, Ned!")
+
if __name__ == '__main__':
unittest.main()