From e32ea537ef308dd353cb0bd957d9b8aafb9d9fc5 Mon Sep 17 00:00:00 2001 From: Jinfei Fan Date: Tue, 25 Jul 2017 12:09:08 -0400 Subject: [PATCH 1/2] use temp dir for jinja2 cache --- ckan/config/environment.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/ckan/config/environment.py b/ckan/config/environment.py index 33a62fa4b9c..2b694b3eb1a 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,9 +371,11 @@ 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): - os.makedirs(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)) env = jinja_extensions.Environment( loader=jinja_extensions.CkanFileSystemLoader(template_paths), autoescape=True, From a1b59f47fe9444769e9e053fd19a8eee90b622a8 Mon Sep 17 00:00:00 2001 From: Jinfei Fan Date: Thu, 17 Aug 2017 15:13:10 -0400 Subject: [PATCH 2/2] use explicit jinja2 cache directory for test --- ckan/config/environment.py | 2 ++ test-core.ini | 1 + 2 files changed, 3 insertions(+) diff --git a/ckan/config/environment.py b/ckan/config/environment.py index 2b694b3eb1a..82ceea153a7 100644 --- a/ckan/config/environment.py +++ b/ckan/config/environment.py @@ -376,6 +376,8 @@ def template_loaded(template): 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), autoescape=True, 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