diff options
author | Armin Ronacher <armin.ronacher@active-4.com> | 2013-05-19 03:10:01 -0700 |
---|---|---|
committer | Armin Ronacher <armin.ronacher@active-4.com> | 2013-05-19 03:10:01 -0700 |
commit | d754f8c2b19775fab0e82fe1eee53e5d2161f0d4 (patch) | |
tree | 92ac01f5f584c9a98aa33d0dc924dd466875fdef | |
parent | 0a6f850d9a4e53950cd89cfec5c91a5a082ed7af (diff) | |
parent | 85b9c8ab3994684d1d1ae47bad94179236d017df (diff) | |
download | jinja2-d754f8c2b19775fab0e82fe1eee53e5d2161f0d4.tar.gz |
Merge pull request #162 from mgax/fix-caching
fix DictLoader `uptodate` callback
-rw-r--r-- | jinja2/loaders.py | 2 | ||||
-rw-r--r-- | jinja2/testsuite/loader.py | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/jinja2/loaders.py b/jinja2/loaders.py index 08fe872..f8e4f99 100644 --- a/jinja2/loaders.py +++ b/jinja2/loaders.py @@ -275,7 +275,7 @@ class DictLoader(BaseLoader): def get_source(self, environment, template): if template in self.mapping: source = self.mapping[template] - return source, None, lambda: source != self.mapping.get(template) + return source, None, lambda: source == self.mapping.get(template) raise TemplateNotFound(template) def list_templates(self): diff --git a/jinja2/testsuite/loader.py b/jinja2/testsuite/loader.py index f62ec92..9368698 100644 --- a/jinja2/testsuite/loader.py +++ b/jinja2/testsuite/loader.py @@ -93,6 +93,13 @@ class LoaderTestCase(JinjaTestCase): assert 'two' not in env.cache assert 'three' in env.cache + def test_dict_loader_cache_invalidates(self): + mapping = {'foo': "one"} + env = Environment(loader=loaders.DictLoader(mapping)) + assert env.get_template('foo').render() == "one" + mapping['foo'] = "two" + assert env.get_template('foo').render() == "two" + def test_split_template_path(self): assert split_template_path('foo/bar') == ['foo', 'bar'] assert split_template_path('./foo/bar') == ['foo', 'bar'] |