This is an automated email from the ASF dual-hosted git repository.

gcruz pushed a commit to branch icon-urls-fix
in repository https://gitbox.apache.org/repos/asf/allura.git

commit 13b787a007570e35359125d7f539c08021598fa8
Author: Guillermo Cruz <[email protected]>
AuthorDate: Fri Nov 19 10:58:41 2021 -0700

    Fixed icon url issue when more than one 'w' url param is included and added 
a test
---
 Allura/allura/controllers/project.py          | 4 ++++
 Allura/allura/tests/functional/test_static.py | 2 ++
 Allura/allura/tests/unit/test_project.py      | 8 ++++++++
 3 files changed, 14 insertions(+)

diff --git a/Allura/allura/controllers/project.py 
b/Allura/allura/controllers/project.py
index 3e8a4b4..57133ff 100644
--- a/Allura/allura/controllers/project.py
+++ b/Allura/allura/controllers/project.py
@@ -250,6 +250,8 @@ class NeighborhoodController(object):
     @expose()
     def icon(self, w=None, **kw):
         try:
+            if isinstance(w, list):
+               w = w[0]
             icon = c.project.icon_sized(w=int(w or 48))
         except ValueError as e:
             log.info('Invalid project icon size: %s on %s', e, request.url)
@@ -422,6 +424,8 @@ class ProjectController(FeedController):
     @expose()
     def icon(self, w=48, **kw):
         try:
+            if isinstance(w, list):
+               w = w[0]
             icon = c.project.icon_sized(w=int(w))
         except ValueError as e:
             log.info('Invalid project icon size: %s on %s', e, request.url)
diff --git a/Allura/allura/tests/functional/test_static.py 
b/Allura/allura/tests/functional/test_static.py
index 5f54ccc9..fae8f8d 100644
--- a/Allura/allura/tests/functional/test_static.py
+++ b/Allura/allura/tests/functional/test_static.py
@@ -19,6 +19,8 @@ from __future__ import unicode_literals
 from __future__ import absolute_import
 
 from allura.tests import TestController
+from tg import config
+from allura.lib import helpers as h
 
 
 class TestStaticFilesMiddleware(TestController):
diff --git a/Allura/allura/tests/unit/test_project.py 
b/Allura/allura/tests/unit/test_project.py
index 6fb0bc0..938a174 100644
--- a/Allura/allura/tests/unit/test_project.py
+++ b/Allura/allura/tests/unit/test_project.py
@@ -25,6 +25,7 @@ from tg import config
 from allura import model as M
 from allura.lib import helpers as h
 from allura.app import SitemapEntry
+import requests
 
 
 class TestProject(unittest.TestCase):
@@ -114,3 +115,10 @@ class TestProject(unittest.TestCase):
 
         with h.push_config(config, **{'static.icon_base': 
'https://mycdn.com/mysite'}):
             self.assertEqual(p.icon_url(), 
'https://mycdn.com/mysite/nbhd/myproj/icon')
+
+    def test_project_icon(self):
+        urls = ['http://localhost/s/contractsafe/icon?w=180&w=200',
+                'http://localhost/s/sproutloud/icon?w=180&&w=200&w=100']
+        for url in urls:
+            r = requests.get(url)
+            self.assertEqual(r.status_code, 200)

Reply via email to