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 2013/10/02 17:39:51 UTC

git commit: [#6665] ticket:446 add MovedTicket redirects to Tracker REST API

Updated Branches:
  refs/heads/master 30f5d75fe -> 2080faea4


[#6665] ticket:446 add MovedTicket redirects to Tracker REST API


Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/2080faea
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/2080faea
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/2080faea

Branch: refs/heads/master
Commit: 2080faea451351d59b495365ffad404fd850f300
Parents: 30f5d75
Author: Yuriy Arhipov <yu...@yandex.ru>
Authored: Sat Sep 28 14:31:39 2013 +0400
Committer: Cory Johns <cj...@slashdotmedia.com>
Committed: Wed Oct 2 15:33:48 2013 +0000

----------------------------------------------------------------------
 AlluraTest/alluratest/controller.py                     |  4 ++--
 ForgeTracker/forgetracker/tests/functional/test_rest.py | 11 +++++++++++
 ForgeTracker/forgetracker/tracker_main.py               |  6 ++++++
 3 files changed, 19 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/2080faea/AlluraTest/alluratest/controller.py
----------------------------------------------------------------------
diff --git a/AlluraTest/alluratest/controller.py b/AlluraTest/alluratest/controller.py
index 577088d..07f9cff 100644
--- a/AlluraTest/alluratest/controller.py
+++ b/AlluraTest/alluratest/controller.py
@@ -180,8 +180,8 @@ class TestRestApiBase(TestController):
         response = fn(
             str(path),
             params=params,
-            status=[200, 201, 302, 400, 403, 404])
-        if response.status_int == 302:
+            status=[200, 201, 301, 302, 400, 403, 404])
+        if response.status_int in [301, 302]:
             return response.follow()
         else:
             return response

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/2080faea/ForgeTracker/forgetracker/tests/functional/test_rest.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/tests/functional/test_rest.py b/ForgeTracker/forgetracker/tests/functional/test_rest.py
index 6d9a457..87e2d44 100644
--- a/ForgeTracker/forgetracker/tests/functional/test_rest.py
+++ b/ForgeTracker/forgetracker/tests/functional/test_rest.py
@@ -127,6 +127,17 @@ class TestRestIndex(TestTrackerApiBase):
         ticket_config = M.AppConfig.query.get(project_id=c.project._id, tool_name='tickets')
         assert_equal(ticket_config.options.get('TicketMonitoringEmail'), 'test@localhost')
 
+    @td.with_tool('test', 'Tickets', 'dummy')
+    def test_move_ticket_redirect(self):
+        p = M.Project.query.get(shortname='test')
+        dummy_tracker = p.app_instance('dummy')
+        r = self.app.post(
+            '/p/test/bugs/1/move',
+            params={'tracker': str(dummy_tracker.config._id)}).follow()
+
+        ticket = self.api_get('/rest/p/test/bugs/1/')
+        assert_equal(ticket.request.path, '/rest/p/test/dummy/1/')
+
 
 class TestRestDiscussion(TestTrackerApiBase):
 

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/2080faea/ForgeTracker/forgetracker/tracker_main.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/tracker_main.py b/ForgeTracker/forgetracker/tracker_main.py
index ea075af..370be90 100644
--- a/ForgeTracker/forgetracker/tracker_main.py
+++ b/ForgeTracker/forgetracker/tracker_main.py
@@ -1666,6 +1666,12 @@ class TicketRestController(BaseController):
             self.ticket = TM.Ticket.query.get(app_config_id=c.app.config._id,
                                                     ticket_num=self.ticket_num)
             if self.ticket is None:
+                moved_ticket = TM.MovedTicket.query.get(
+                    app_config_id=c.app.config._id,
+                    ticket_num=self.ticket_num)
+                if moved_ticket:
+                    utils.permanent_redirect('/rest' + moved_ticket.moved_to_url)
+
                 raise exc.HTTPNotFound()
 
     def _check_security(self):