"""
import os
import sys
+import weakref
from functools import reduce, partial
from jinja2 import nodes
from jinja2.defaults import BLOCK_START_STRING, \
def _load_template(self, name, globals):
if self.loader is None:
raise TypeError('no loader for this environment specified')
- cache_key = (id(self.loader), name)
+ cache_key = (weakref.ref(self.loader), name)
if self.cache is not None:
template = self.cache.get(cache_key)
if template is not None and (not self.auto_reload or
import tempfile
import shutil
import pytest
+import weakref
from jinja2 import Environment, loaders
from jinja2._compat import PYPY, PY2
assert t2 is env.get_template('two')
assert t1 is env.get_template('one')
t3 = env.get_template('three')
- assert (id(loader), 'one') in env.cache
- assert (id(loader), 'two') not in env.cache
- assert (id(loader), 'three') in env.cache
+ loader_ref = weakref.ref(loader)
+ assert (loader_ref, 'one') in env.cache
+ assert (loader_ref, 'two') not in env.cache
+ assert (loader_ref, 'three') in env.cache
def test_cache_loader_change(self):
loader1 = loaders.DictLoader({'foo': 'one'})