diff --git a/ckan/config/environment.py b/ckan/config/environment.py index 864634cc4bc..48c92f8d622 100644 --- a/ckan/config/environment.py +++ b/ckan/config/environment.py @@ -1,6 +1,10 @@ # -*- coding: utf-8 -*- """Pylons environment configuration""" import os +import tempfile +import atexit +import shutil +from functools import partial import logging import warnings from urlparse import urlparse @@ -367,8 +371,12 @@ def template_loaded(template): template_paths, auto_reload=True, callback=template_loaded) # Create Jinja2 environment - cache_dir = config.get('jinja2_cache_dir', '/tmp/jinja_cache') - if not os.path.exists(cache_dir): + cache_dir = config.get('jinja2_cache_dir', None) + if not cache_dir: + cache_dir = tempfile.mkdtemp() + config['jinja2_cache_dir'] = cache_dir + atexit.register(partial(shutil.rmtree, cache_dir)) + elif not os.path.exists(cache_dir): os.makedirs(cache_dir) env = jinja_extensions.Environment( loader=jinja_extensions.CkanFileSystemLoader(template_paths), diff --git a/test-core.ini b/test-core.ini index 3f02b8f2b0e..c4926a28a65 100644 --- a/test-core.ini +++ b/test-core.ini @@ -6,6 +6,7 @@ use = egg:Paste#http host = 0.0.0.0 port = 5000 +jinja2_cache_dir = /tmp/test_ckanjinja2 [app:main] use = egg:ckan