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