diff options
-rw-r--r-- | coverage/templite.py | 5 | ||||
-rw-r--r-- | test/test_templite.py | 5 |
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] |