summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--coverage/templite.py5
-rw-r--r--test/test_templite.py5
2 files changed, 9 insertions, 1 deletions
diff --git a/coverage/templite.py b/coverage/templite.py
index 2eab864a..f75e2a2d 100644
--- a/coverage/templite.py
+++ b/coverage/templite.py
@@ -73,7 +73,10 @@ class ContextAccess(object):
dots = key.split('.')
value = self[dots[0]]
for dot in dots[1:]:
- value = getattr(value, dot)
+ try:
+ value = getattr(value, dot)
+ except AttributeError:
+ value = value[dot]
if callable(value):
value = value()
else:
diff --git a/test/test_templite.py b/test/test_templite.py
index 15055f2e..fd7a3393 100644
--- a/test/test_templite.py
+++ b/test/test_templite.py
@@ -66,6 +66,11 @@ class TemplateTest(unittest.TestCase):
obj.txt = "Once"
self.try_render("{{obj.ditto}}", locals(), "OnceOnce")
+ def test_item_access(self):
+ # Variables' items can be used.
+ d = {'a':17, 'b':23}
+ self.try_render("{{d.a}} < {{d.b}}", locals(), "17 < 23")
+
def test_loops(self):
# Loops work like in Django.
nums = [1,2,3,4]