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
1=== modified file 'lib/offspring/web/queuemanager/tests/test_views.py'
2--- lib/offspring/web/queuemanager/tests/test_views.py 2011-10-10 21:15:48 +0000
3+++ lib/offspring/web/queuemanager/tests/test_views.py 2011-10-17 20:00:28 +0000
4@@ -298,12 +298,39 @@
5 def test_private_builds_are_not_shown_if_user_has_no_rights(self):
6 project = factory.makeProject(is_private=True)
7 build = factory.makeBuildResult(project=project)
8- user = factory.makeUser()
9+ make_user_and_login(self.client)
10+ response = self.client.get(reverse(self.view_path))
11+ self.assertNotContains(
12+ response, build.name, status_code=200, msg_prefix=response.content)
13+
14+
15+class ProjectListTests(TestCase):
16+ view_path = 'offspring.web.queuemanager.views.projects'
17+
18+ def test_public_projects_are_shown_to_anyone(self):
19+ project = factory.makeProject(is_private=False)
20+ response = self.client.get(reverse(self.view_path))
21+ self.assertContains(
22+ response, project.name, status_code=200,
23+ msg_prefix=response.content)
24+
25+ def test_private_projects_are_shown_if_user_has_rights(self):
26+ project = factory.makeProject(is_private=True)
27+ user = project.owner
28 self.assertTrue(
29 self.client.login(username=user.username, password=user.username))
30 response = self.client.get(reverse(self.view_path))
31+ self.assertContains(
32+ response, project.name, status_code=200,
33+ msg_prefix=response.content)
34+
35+ def test_private_projects_are_not_shown_if_user_has_no_rights(self):
36+ project = factory.makeProject(is_private=True)
37+ make_user_and_login(self.client)
38+ response = self.client.get(reverse(self.view_path))
39 self.assertNotContains(
40- response, build.name, status_code=200, msg_prefix=response.content)
41+ response, project.name, status_code=200,
42+ msg_prefix=response.content)
43
44
45 def make_user_and_login(client):
46
47=== modified file 'lib/offspring/web/queuemanager/views.py'
48--- lib/offspring/web/queuemanager/views.py 2011-10-13 22:59:59 +0000
49+++ lib/offspring/web/queuemanager/views.py 2011-10-17 20:00:28 +0000
50@@ -88,7 +88,9 @@
51 return object_detail(request, **page_info)
52
53 def projects(request):
54- projects = Project.objects.select_related('project_group').order_by("project_group")
55+ projects = Project.all_objects.accessible_by_user(request.user)
56+ projects = projects.select_related('project_group').order_by(
57+ "project_group")
58 if request.path == "/" or request.path == "":
59 pillar = "home"
60 #XXX: Move logic for determining active projects into model manager.

Subscribers

People subscribed via source and target branches