]> git.ipfire.org Git - thirdparty/jinja.git/commitdiff
fix DictLoader `uptodate` callback 162/head
authorAlex Morega <alex@grep.ro>
Sun, 18 Nov 2012 17:19:47 +0000 (18:19 +0100)
committerAlex Morega <alex@grep.ro>
Sun, 18 Nov 2012 17:19:47 +0000 (18:19 +0100)
jinja2/loaders.py
jinja2/testsuite/loader.py

index c90bbe7204e9dd3c86d3baecbcd65719e58750ff..bd409293e2618b5ac1f67a7c5ce8af39e2b9d0bb 100644 (file)
@@ -274,7 +274,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):
index f62ec924701281d485b2e51f7f75c856af66a768..9368698dcf7fb4d3f4bbc6d366c51890298c8e5e 100644 (file)
@@ -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']