Merge lp:~wgrant/launchpad/bug-1364451 into lp:launchpad

Proposed by William Grant
Status: Merged
Merged at revision: 17207
Proposed branch: lp:~wgrant/launchpad/bug-1364451
Merge into: lp:launchpad
Diff against target: 43 lines (+16/-2)
2 files modified
lib/lp/bugs/browser/bugtask.py (+2/-1)
lib/lp/bugs/browser/tests/test_bugtask_navigation.py (+14/-1)
To merge this branch: bzr merge lp:~wgrant/launchpad/bug-1364451
Reviewer Review Type Date Requested Status
William Grant code Approve
Review via email: mp+239276@code.launchpad.net

Commit message

Fix default bugtask redirect to not leave the current rootsite.

Description of the change

Fix default bugtask redirect to not leave the current rootsite.

To post a comment you must log in.
Revision history for this message
William Grant (wgrant) :
review: Approve (code)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'lib/lp/bugs/browser/bugtask.py'
2--- lib/lp/bugs/browser/bugtask.py 2014-05-28 22:02:56 +0000
3+++ lib/lp/bugs/browser/bugtask.py 2014-10-22 19:29:33 +0000
4@@ -563,7 +563,8 @@
5 travseral_stack = self.request.getTraversalStack()
6 if len(travseral_stack) > 0:
7 raise NotFoundError
8- return self.redirectSubTree(canonical_url(bug.default_bugtask))
9+ return self.redirectSubTree(
10+ canonical_url(bug.default_bugtask, request=self.request))
11
12
13 class BugTaskNavigation(Navigation):
14
15=== modified file 'lib/lp/bugs/browser/tests/test_bugtask_navigation.py'
16--- lib/lp/bugs/browser/tests/test_bugtask_navigation.py 2012-01-01 02:58:52 +0000
17+++ lib/lp/bugs/browser/tests/test_bugtask_navigation.py 2014-10-22 19:29:33 +0000
18@@ -17,7 +17,7 @@
19 from lp.testing.publication import test_traverse
20
21
22-class TestBugtaskTraversal(TestCaseWithFactory):
23+class TestBugTaskTraversal(TestCaseWithFactory):
24
25 layer = DatabaseFunctionalLayer
26
27@@ -47,3 +47,16 @@
28 login_person(bugtask.owner)
29 bugtask.delete()
30 self.assertRaises(NotFound, test_traverse, bugtask_delete_url)
31+
32+ def test_traversal_to_nonexistent_bugtask_on_api(self):
33+ # Traversing to a non-existent bugtask on the API redirects to
34+ # the default bugtask, but also on the API.
35+ bug = self.factory.makeBug()
36+ product = self.factory.makeProduct()
37+ obj, view, request = test_traverse(
38+ 'http://api.launchpad.dev/1.0/%s/+bug/%d'
39+ % (product.name, bug.default_bugtask.bug.id))
40+ self.assertEqual(
41+ removeSecurityProxy(view).target,
42+ 'http://api.launchpad.dev/1.0/%s/+bug/%d'
43+ % (bug.default_bugtask.target.name, bug.default_bugtask.bug.id))