summaryrefslogtreecommitdiff
path: root/coverage/templite.py
diff options
context:
space:
mode:
Diffstat (limited to 'coverage/templite.py')
-rw-r--r--coverage/templite.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/coverage/templite.py b/coverage/templite.py
index c2e8981f..c42e380c 100644
--- a/coverage/templite.py
+++ b/coverage/templite.py
@@ -11,6 +11,11 @@ class TempliteSyntaxError(ValueError):
pass
+class TempliteValueError(ValueError):
+ """Raised when an expression won't evaluate in a template."""
+ pass
+
+
class CodeBuilder(object):
"""Build source code conveniently."""
@@ -250,7 +255,12 @@ class Templite(object):
try:
value = getattr(value, dot)
except AttributeError:
- value = value[dot]
+ try:
+ value = value[dot]
+ except (TypeError, KeyError):
+ raise TempliteValueError(
+ "Couldn't evaluate %r.%s" % (value, dot)
+ )
if callable(value):
value = value()
return value