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/02/27 17:18:29 UTC
[12/16] git commit: [#7214] make admin landing page not error when
tool not present
[#7214] make admin landing page not error when tool not present
Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/6143e75d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/6143e75d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/6143e75d
Branch: refs/heads/cj/7210
Commit: 6143e75dae7eee1e724c9e497c3ce1ec954ad9c2
Parents: 95a99c6
Author: Dave Brondsema <da...@brondsema.net>
Authored: Mon Feb 24 23:17:44 2014 -0500
Committer: Cory Johns <cj...@slashdotmedia.com>
Committed: Thu Feb 27 00:34:58 2014 +0000
----------------------------------------------------------------------
Allura/allura/lib/plugin.py | 4 +++-
Allura/allura/tests/test_plugin.py | 31 +++++++++++++++++++++++++++++++
2 files changed, 34 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/6143e75d/Allura/allura/lib/plugin.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/plugin.py b/Allura/allura/lib/plugin.py
index 084501f..7773bf0 100644
--- a/Allura/allura/lib/plugin.py
+++ b/Allura/allura/lib/plugin.py
@@ -909,8 +909,10 @@ class ThemeProvider(object):
if isinstance(app, str):
if app in self.icons and size in self.icons[app]:
return g.theme_href(self.icons[app][size])
- else:
+ elif app in g.entry_points['tool']:
return g.entry_points['tool'][app].icon_url(size)
+ else:
+ return None
else:
return app.icon_url(size)
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/6143e75d/Allura/allura/tests/test_plugin.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/test_plugin.py b/Allura/allura/tests/test_plugin.py
index 24a163a..d6f76d5 100644
--- a/Allura/allura/tests/test_plugin.py
+++ b/Allura/allura/tests/test_plugin.py
@@ -20,6 +20,7 @@ from mock import Mock, MagicMock, patch
from datetime import timedelta
from allura import model as M
+from allura.app import Application
from allura.lib.utils import TruthyCallable
from allura.lib.plugin import ProjectRegistrationProvider
from allura.lib.plugin import ThemeProvider
@@ -153,3 +154,33 @@ class TestThemeProvider(object):
assert_is(ThemeProvider().get_site_notification(), note)
response.set_cookie.assert_called_once_with(
'site-notification', 'deadbeef-1-False', max_age=timedelta(days=365))
+
+ @patch('allura.app.g')
+ @patch('allura.lib.plugin.g')
+ def test_app_icon_str(self, plugin_g, app_g):
+ class TestApp(Application):
+ icons = {
+ 24: 'images/testapp_24.png',
+ }
+ plugin_g.entry_points = {'tool': {'testapp': TestApp}}
+ assert_equals(ThemeProvider().app_icon_url('testapp', 24),
+ app_g.theme_href.return_value)
+ app_g.theme_href.assert_called_with('images/testapp_24.png')
+
+ @patch('allura.lib.plugin.g')
+ def test_app_icon_str_invalid(self, g):
+ g.entry_points = {'tool': {'testapp': Mock()}}
+ assert_equals(ThemeProvider().app_icon_url('invalid', 24),
+ None)
+
+ @patch('allura.app.g')
+ def test_app_icon_app(self, g):
+ class TestApp(Application):
+ icons = {
+ 24: 'images/testapp_24.png',
+ }
+ app = TestApp(None, None)
+ assert_equals(ThemeProvider().app_icon_url(app, 24),
+ g.theme_href.return_value)
+ g.theme_href.assert_called_with('images/testapp_24.png')
+