You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by jo...@apache.org on 2014/01/30 19:34:01 UTC
git commit: [#7119] Added switch for disabling template overrides
Updated Branches:
refs/heads/master 50fb9ef15 -> 5bc685ddf
[#7119] Added switch for disabling template overrides
Signed-off-by: Cory Johns <cj...@slashdotmedia.com>
Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/5bc685dd
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/5bc685dd
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/5bc685dd
Branch: refs/heads/master
Commit: 5bc685ddfa709dd6f350d66c5a71c24459da9e0a
Parents: 50fb9ef
Author: Cory Johns <cj...@slashdotmedia.com>
Authored: Thu Jan 30 15:26:36 2014 +0000
Committer: Cory Johns <cj...@slashdotmedia.com>
Committed: Thu Jan 30 15:26:36 2014 +0000
----------------------------------------------------------------------
Allura/allura/lib/package_path_loader.py | 20 ++++++++++++--------
.../tests/unit/test_package_path_loader.py | 20 ++++++++++++++++++++
Allura/test.ini | 1 +
3 files changed, 33 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/5bc685dd/Allura/allura/lib/package_path_loader.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/package_path_loader.py b/Allura/allura/lib/package_path_loader.py
index fa5f71b..be28fed 100644
--- a/Allura/allura/lib/package_path_loader.py
+++ b/Allura/allura/lib/package_path_loader.py
@@ -126,6 +126,8 @@ import pkg_resources
import os
import jinja2
+from tg import config
+from paste.deploy.converters import asbool
from ming.utils import LazyProperty
from allura.lib.helpers import topological_sort, iter_entry_points
@@ -263,14 +265,16 @@ class PackagePathLoader(jinja2.BaseLoader):
- module:path/to/template.html
'''
# look in all of the customized search locations...
- try:
- parts = [self.override_root] + template.split(':')
- if len(parts) > 2:
- parts[1:2] = parts[1].split('.')
- return self.fs_loader.get_source(environment, os.path.join(*parts))
- except jinja2.TemplateNotFound:
- # fall-back to attempt non-override loading
- pass
+ if not asbool(config.get('disable_template_overrides', False)):
+ try:
+ parts = [self.override_root] + template.split(':')
+ if len(parts) > 2:
+ parts[1:2] = parts[1].split('.')
+ return self.fs_loader.get_source(environment,
+ os.path.join(*parts))
+ except jinja2.TemplateNotFound:
+ # fall-back to attempt non-override loading
+ pass
if ':' in template:
package, path = template.split(':', 2)
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/5bc685dd/Allura/allura/tests/unit/test_package_path_loader.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/unit/test_package_path_loader.py b/Allura/allura/tests/unit/test_package_path_loader.py
index c0c1519..c3109c3 100644
--- a/Allura/allura/tests/unit/test_package_path_loader.py
+++ b/Allura/allura/tests/unit/test_package_path_loader.py
@@ -20,6 +20,7 @@ from unittest import TestCase
import jinja2
from nose.tools import assert_equal, assert_raises
import mock
+from tg import config
from allura.lib.package_path_loader import PackagePathLoader
@@ -166,6 +167,7 @@ class TestPackagePathLoader(TestCase):
assert_equal(output1, 'fs_loader')
assert output1 is output2
+ @mock.patch.dict(config, {'disable_template_overrides': False})
@mock.patch('jinja2.FileSystemLoader')
def test_get_source(self, fs_loader):
ppl = PackagePathLoader()
@@ -206,3 +208,21 @@ class TestPackagePathLoader(TestCase):
assert_equal(fs_loader().get_source.call_count, 2)
fs_loader().get_source.assert_called_with(
'env', 'templates/audit.html')
+
+ @mock.patch('jinja2.FileSystemLoader')
+ def test_override_disable(self, fs_loader):
+ ppl = PackagePathLoader()
+ ppl.init_paths = mock.Mock()
+ fs_loader().get_source.side_effect = jinja2.TemplateNotFound('test')
+
+ assert_raises(
+ jinja2.TemplateError,
+ ppl.get_source, 'env', 'allura.ext.admin:templates/audit.html')
+ assert_equal(fs_loader().get_source.call_count, 1)
+ fs_loader().get_source.reset_mock()
+
+ with mock.patch.dict(config, {'disable_template_overrides': False}):
+ assert_raises(
+ jinja2.TemplateError,
+ ppl.get_source, 'env', 'allura.ext.admin:templates/audit.html')
+ assert_equal(fs_loader().get_source.call_count, 2)
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/5bc685dd/Allura/test.ini
----------------------------------------------------------------------
diff --git a/Allura/test.ini b/Allura/test.ini
index 9a11bb4..b1880b8 100644
--- a/Allura/test.ini
+++ b/Allura/test.ini
@@ -36,6 +36,7 @@ port = 5000
[app:main]
use = config:development.ini#tool_test
db_prefix = test_
+disable_template_overrides = True
site_name = Allura
base_url = http://localhost