diff options
-rw-r--r-- | coverage/templite.py | 4 | ||||
-rw-r--r-- | test/coverage_coverage.py | 3 | ||||
-rw-r--r-- | test/test_templite.py | 7 |
3 files changed, 10 insertions, 4 deletions
diff --git a/coverage/templite.py b/coverage/templite.py index 22c93a9e..64dc1232 100644 --- a/coverage/templite.py +++ b/coverage/templite.py @@ -80,7 +80,7 @@ class Templite(object): ops = ops_stack.pop() assert ops[-1][0] == words[0][3:] else: - raise Exception("Don't understand tag %r" % words) + raise SyntaxError("Don't understand tag %r" % words) else: ops.append(('lit', tok)) @@ -138,7 +138,7 @@ class _TempliteEngine(object): self.context[var] = val self.execute(body) else: - raise Exception("TempliteEngine doesn't grok op %r" % op) + raise AssertionError("TempliteEngine doesn't grok op %r" % op) def evaluate(self, expr): """Evaluate an expression. diff --git a/test/coverage_coverage.py b/test/coverage_coverage.py index 1a5cc9c4..e1e7674f 100644 --- a/test/coverage_coverage.py +++ b/test/coverage_coverage.py @@ -8,7 +8,7 @@ HTML_DIR = "htmlcov" if os.path.exists(HTML_DIR): shutil.rmtree(HTML_DIR) -cov = coverage.coverage() +cov = coverage.coverage(branch=True) # Cheap trick: the coverage code itself is excluded from measurement, but if # we clobber the cover_prefix in the coverage object, we can defeat the # self-detection. @@ -40,5 +40,6 @@ cov.clear_exclude() cov.exclude("#pragma: no cover") cov.exclude("def __repr__") cov.exclude("if __name__ == .__main__.:") +cov.exclude("raise AssertionError") cov.html_report(directory=HTML_DIR, ignore_errors=True) diff --git a/test/test_templite.py b/test/test_templite.py index 6b445aa2..f2c20f94 100644 --- a/test/test_templite.py +++ b/test/test_templite.py @@ -191,13 +191,18 @@ class TempliteTest(unittest.TestCase): "@a0b0c0a1b1c1a2b2c2!" ) - def test_exception(self): + def test_exception_during_evaluation(self): # TypeError: Couldn't evaluate {{ foo.bar.baz }}: # 'NoneType' object is unsubscriptable self.assertRaises(TypeError, self.try_render, "Hey {{foo.bar.baz}} there", {'foo': None}, "Hey XXX there" ) + def test_bogus_tag_syntax(self): + self.assertRaises(SyntaxError, self.try_render, + "Huh: {% bogus %}!!{% endbogus %}??", {}, "" + ) + if __name__ == '__main__': unittest.main() |