diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2009-04-20 08:37:57 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2009-04-20 08:37:57 -0400 |
commit | 5d1cdd285721375e0973bf37f6504aefb1a8d74d (patch) | |
tree | 2f39476c0c11a6774602ae0c9fde570302694b1a | |
parent | 8def9f6ce6969f7f2f7622f15cc764052b0e7b2c (diff) | |
download | python-coveragepy-5d1cdd285721375e0973bf37f6504aefb1a8d74d.tar.gz |
Variables' items (dict access) can be used in templates.
-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 2eab864..f75e2a2 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 15055f2..fd7a339 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] |