You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by br...@apache.org on 2020/11/11 01:49:17 UTC

[allura] 01/02: improve repo navbar SEO by 302->301

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

brondsem pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/allura.git

commit 7f33f2a445f0d9a46fc27195ea9dbc16a28d91a4
Author: Dillon Walls <di...@slashdotmedia.com>
AuthorDate: Fri Oct 23 17:09:04 2020 +0000

    improve repo navbar SEO by 302->301
---
 Allura/allura/controllers/repository.py                | 4 +++-
 Allura/allura/tests/functional/test_home.py            | 2 +-
 Allura/allura/tests/functional/test_neighborhood.py    | 8 ++++----
 ForgeGit/forgegit/controllers.py                       | 4 +++-
 ForgeGit/forgegit/tests/functional/test_controllers.py | 6 +++---
 ForgeSVN/forgesvn/controllers.py                       | 4 +++-
 ForgeWiki/forgewiki/tests/functional/test_root.py      | 6 +++---
 ForgeWiki/forgewiki/wiki_main.py                       | 4 ++--
 8 files changed, 22 insertions(+), 16 deletions(-)

diff --git a/Allura/allura/controllers/repository.py b/Allura/allura/controllers/repository.py
index 7ee5e95..a4396e9 100644
--- a/Allura/allura/controllers/repository.py
+++ b/Allura/allura/controllers/repository.py
@@ -20,6 +20,8 @@ from __future__ import absolute_import
 import os
 import logging
 import difflib
+
+from allura.lib.utils import permanent_redirect
 from datetime import datetime
 from six.moves.urllib.parse import quote, unquote
 from collections import defaultdict, OrderedDict
@@ -94,7 +96,7 @@ class RepoRootController(BaseController, FeedController):
     def index(self, offset=0, branch=None, **kw):
         if branch is None:
             branch = c.app.default_branch_name
-        redirect(c.app.repo.url_for_commit(branch, url_type='ref'))
+        permanent_redirect(c.app.repo.url_for_commit(branch, url_type='ref'))
 
     @with_trailing_slash
     @expose('jinja:allura:templates/repo/forks.html')
diff --git a/Allura/allura/tests/functional/test_home.py b/Allura/allura/tests/functional/test_home.py
index ab5834f..6ab70d1 100644
--- a/Allura/allura/tests/functional/test_home.py
+++ b/Allura/allura/tests/functional/test_home.py
@@ -137,7 +137,7 @@ class TestProjectHome(TestController):
 
     @td.with_wiki
     def test_neighborhood_home(self):
-        self.app.get('/p/test/wiki/', status=302)
+        self.app.get('/p/test/wiki/', status=301)
         self.app.get('/adobe/test/wiki/', status=404)
         self.app.get('/adobe/no_such_project/wiki/', status=404)
 
diff --git a/Allura/allura/tests/functional/test_neighborhood.py b/Allura/allura/tests/functional/test_neighborhood.py
index 33b0ba6..ce75e9c 100644
--- a/Allura/allura/tests/functional/test_neighborhood.py
+++ b/Allura/allura/tests/functional/test_neighborhood.py
@@ -29,7 +29,7 @@ from mock import patch
 from tg import config
 from nose.tools import assert_equal, assert_in, assert_not_equal
 from ming.orm.ormsession import ThreadLocalORMSession, session
-from paste.httpexceptions import HTTPFound
+from paste.httpexceptions import HTTPFound, HTTPMovedPermanently
 from tg import app_globals as g, tmpl_context as c
 
 import allura
@@ -44,7 +44,7 @@ from six.moves import map
 
 class TestNeighborhood(TestController):
     def test_home_project(self):
-        r = self.app.get('/adobe/wiki/', status=302)
+        r = self.app.get('/adobe/wiki/', status=301)
         assert r.location.endswith('/adobe/wiki/Home/')
         r = r.follow()
         assert 'This is the "Adobe" neighborhood' in str(r), str(r)
@@ -332,7 +332,7 @@ class TestNeighborhood(TestController):
         neighborhood = M.Neighborhood.query.get(name='Adobe')
         neighborhood.features['css'] = 'picker'
         r = self.app.get('/adobe/')
-        while isinstance(r.response, HTTPFound):
+        while isinstance(r.response, HTTPFound) or isinstance(r.response, HTTPMovedPermanently):
             r = r.follow()
         assert test_css in r
         r = self.app.get('/adobe/_admin/overview',
@@ -342,7 +342,7 @@ class TestNeighborhood(TestController):
         neighborhood = M.Neighborhood.query.get(name='Adobe')
         neighborhood.features['css'] = 'custom'
         r = self.app.get('/adobe/')
-        while isinstance(r.response, HTTPFound):
+        while isinstance(r.response, HTTPFound) or isinstance(r.response, HTTPMovedPermanently):
             r = r.follow()
         assert test_css in r
         r = self.app.get('/adobe/_admin/overview',
diff --git a/ForgeGit/forgegit/controllers.py b/ForgeGit/forgegit/controllers.py
index 188f8c4..e25238c 100644
--- a/ForgeGit/forgegit/controllers.py
+++ b/ForgeGit/forgegit/controllers.py
@@ -17,6 +17,8 @@
 
 from __future__ import unicode_literals
 from __future__ import absolute_import
+
+from allura.lib.utils import permanent_redirect
 from tg import expose, redirect
 from tg.decorators import with_trailing_slash
 from tg import tmpl_context as c
@@ -33,4 +35,4 @@ class BranchBrowser(repository.BranchBrowser):
         latest = c.app.repo.latest(branch=self._branch)
         if is_empty or not latest:
             return dict(allow_fork=False, log=[], is_empty=is_empty)
-        redirect(c.app.repo.url_for_commit(self._branch) + 'tree/')
+        permanent_redirect(c.app.repo.url_for_commit(self._branch) + 'tree/')
diff --git a/ForgeGit/forgegit/tests/functional/test_controllers.py b/ForgeGit/forgegit/tests/functional/test_controllers.py
index 6b6a212..c08993d 100644
--- a/ForgeGit/forgegit/tests/functional/test_controllers.py
+++ b/ForgeGit/forgegit/tests/functional/test_controllers.py
@@ -648,10 +648,10 @@ class TestFork(_TestCase):
             shutil.rmtree(clone_path, ignore_errors=True)
 
     def _follow(self, r, **kw):
-        if r.status_int == 302:
+        if r.status_int == 301 or r.status_int == 302:
             print(r.request.url)
-        while r.status_int == 302:
-            print(' ==> 302 ==> %s' % r.location)
+        while r.status_int == 301 or r.status_int == 302:
+            print(' ==> 302/301 ==> %s' % r.location)
             r = r.follow(**kw)
         return r
 
diff --git a/ForgeSVN/forgesvn/controllers.py b/ForgeSVN/forgesvn/controllers.py
index 1d967e4..7eab0c2 100644
--- a/ForgeSVN/forgesvn/controllers.py
+++ b/ForgeSVN/forgesvn/controllers.py
@@ -17,6 +17,8 @@
 
 from __future__ import unicode_literals
 from __future__ import absolute_import
+
+from allura.lib.utils import permanent_redirect
 from tg import expose, redirect
 from tg.decorators import with_trailing_slash
 from tg import tmpl_context as c
@@ -40,7 +42,7 @@ class BranchBrowser(repository.BranchBrowser, FeedController):
         latest = c.app.repo.latest(branch=self._branch)
         if is_empty or not latest:
             return dict(allow_fork=False, log=[], is_empty=is_empty)
-        redirect(c.app.repo.url_for_commit(c.app.default_branch_name)
+        permanent_redirect(c.app.repo.url_for_commit(c.app.default_branch_name)
                  + 'tree/')
 
     @expose()
diff --git a/ForgeWiki/forgewiki/tests/functional/test_root.py b/ForgeWiki/forgewiki/tests/functional/test_root.py
index 7ea79bc..35f2b3c 100644
--- a/ForgeWiki/forgewiki/tests/functional/test_root.py
+++ b/ForgeWiki/forgewiki/tests/functional/test_root.py
@@ -673,7 +673,7 @@ class TestRootController(TestController):
         assert_equal(homepage_admin.form['new_home'].value, 'Home')
         homepage_admin.form['new_home'].value = 'our_néw_home'
         homepage_admin.form.submit()
-        root_path = self.app.get('/wiki/', status=302)
+        root_path = self.app.get('/wiki/', status=301)
         assert root_path.location.endswith('/wiki/our_n%C3%A9w_home/'), root_path.location
 
     def test_edit_mount_label(self):
@@ -753,13 +753,13 @@ class TestRootController(TestController):
         assert found_links == 10, 'Wrong number of links found'
 
     def test_home_rename(self):
-        assert 'The resource was found at http://localhost/p/test/wiki/Home/;' in self.app.get(
+        assert 'The resource has been moved to http://localhost/p/test/wiki/Home/;' in self.app.get(
             '/p/test/wiki/')
         req = self.app.get('/p/test/wiki/Home/edit')
         form = self._find_edit_form(req)
         form['title'].value = 'new_title'
         form.submit()
-        assert 'The resource was found at http://localhost/p/test/wiki/new_title/;' in self.app.get(
+        assert 'The resource has been moved to http://localhost/p/test/wiki/new_title/;' in self.app.get(
             '/p/test/wiki/')
 
     @patch.dict('allura.lib.app_globals.config', markdown_cache_threshold='0')
diff --git a/ForgeWiki/forgewiki/wiki_main.py b/ForgeWiki/forgewiki/wiki_main.py
index c30eb8e..3e5c702 100644
--- a/ForgeWiki/forgewiki/wiki_main.py
+++ b/ForgeWiki/forgewiki/wiki_main.py
@@ -43,7 +43,7 @@ from allura.app import Application, SitemapEntry, DefaultAdminController, Config
 from allura.lib.search import search_app
 from allura.lib.decorators import require_post, memorable_forget
 from allura.lib.security import require_access, has_access
-from allura.lib.utils import is_ajax, JSONForExport
+from allura.lib.utils import is_ajax, JSONForExport, permanent_redirect
 from allura.tasks import notification_tasks
 from allura.lib import exceptions as forge_exc
 from allura.controllers import AppDiscussionController, BaseController, AppDiscussionRestController
@@ -392,7 +392,7 @@ class RootController(BaseController, DispatchIndex, FeedController):
     @with_trailing_slash
     @expose()
     def index(self, **kw):
-        redirect(h.urlquote(h.really_unicode(c.app.root_page_name)+ '/'))
+        permanent_redirect(h.urlquote(h.really_unicode(c.app.root_page_name)+ '/'))
 
     @expose()
     def _lookup(self, pname, *remainder):