Merge lp:~salgado/offspring/project-list into lp:~linaro-automation/offspring/private-builds

Proposed by Guilherme Salgado
Status: Merged
Approved by: James Tunnicliffe
Approved revision: 63
Merged at revision: 64
Proposed branch: lp:~salgado/offspring/project-list
Merge into: lp:~linaro-automation/offspring/private-builds
Diff against target: 60 lines (+32/-3)
2 files modified
lib/offspring/web/queuemanager/tests/test_views.py (+29/-2)
lib/offspring/web/queuemanager/views.py (+3/-1)
To merge this branch: bzr merge lp:~salgado/offspring/project-list
Reviewer Review Type Date Requested Status
James Tunnicliffe (community) Approve
Review via email: mp+79607@code.launchpad.net

Description of the change

Change the project list view to show private projects the user is allowed to see

To post a comment you must log in.
lp:~salgado/offspring/project-list updated
63. By Guilherme Salgado

Fix a typo in the name of the new test class

Revision history for this message
James Tunnicliffe (dooferlad) wrote :

Nice.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'lib/offspring/web/queuemanager/tests/test_views.py'
--- lib/offspring/web/queuemanager/tests/test_views.py 2011-10-10 21:15:48 +0000
+++ lib/offspring/web/queuemanager/tests/test_views.py 2011-10-17 20:00:28 +0000
@@ -298,12 +298,39 @@
298 def test_private_builds_are_not_shown_if_user_has_no_rights(self):298 def test_private_builds_are_not_shown_if_user_has_no_rights(self):
299 project = factory.makeProject(is_private=True)299 project = factory.makeProject(is_private=True)
300 build = factory.makeBuildResult(project=project)300 build = factory.makeBuildResult(project=project)
301 user = factory.makeUser()301 make_user_and_login(self.client)
302 response = self.client.get(reverse(self.view_path))
303 self.assertNotContains(
304 response, build.name, status_code=200, msg_prefix=response.content)
305
306
307class ProjectListTests(TestCase):
308 view_path = 'offspring.web.queuemanager.views.projects'
309
310 def test_public_projects_are_shown_to_anyone(self):
311 project = factory.makeProject(is_private=False)
312 response = self.client.get(reverse(self.view_path))
313 self.assertContains(
314 response, project.name, status_code=200,
315 msg_prefix=response.content)
316
317 def test_private_projects_are_shown_if_user_has_rights(self):
318 project = factory.makeProject(is_private=True)
319 user = project.owner
302 self.assertTrue(320 self.assertTrue(
303 self.client.login(username=user.username, password=user.username))321 self.client.login(username=user.username, password=user.username))
304 response = self.client.get(reverse(self.view_path))322 response = self.client.get(reverse(self.view_path))
323 self.assertContains(
324 response, project.name, status_code=200,
325 msg_prefix=response.content)
326
327 def test_private_projects_are_not_shown_if_user_has_no_rights(self):
328 project = factory.makeProject(is_private=True)
329 make_user_and_login(self.client)
330 response = self.client.get(reverse(self.view_path))
305 self.assertNotContains(331 self.assertNotContains(
306 response, build.name, status_code=200, msg_prefix=response.content)332 response, project.name, status_code=200,
333 msg_prefix=response.content)
307334
308335
309def make_user_and_login(client):336def make_user_and_login(client):
310337
=== modified file 'lib/offspring/web/queuemanager/views.py'
--- lib/offspring/web/queuemanager/views.py 2011-10-13 22:59:59 +0000
+++ lib/offspring/web/queuemanager/views.py 2011-10-17 20:00:28 +0000
@@ -88,7 +88,9 @@
88 return object_detail(request, **page_info)88 return object_detail(request, **page_info)
8989
90def projects(request):90def projects(request):
91 projects = Project.objects.select_related('project_group').order_by("project_group")91 projects = Project.all_objects.accessible_by_user(request.user)
92 projects = projects.select_related('project_group').order_by(
93 "project_group")
92 if request.path == "/" or request.path == "":94 if request.path == "/" or request.path == "":
93 pillar = "home"95 pillar = "home"
94 #XXX: Move logic for determining active projects into model manager.96 #XXX: Move logic for determining active projects into model manager.

Subscribers

People subscribed via source and target branches