Merge lp:~salgado/offspring/builder-details into lp:~linaro-automation/offspring/private-builds

Proposed by Guilherme Salgado
Status: Merged
Approved by: James Tunnicliffe
Approved revision: 69
Merged at revision: 67
Proposed branch: lp:~salgado/offspring/builder-details
Merge into: lp:~linaro-automation/offspring/private-builds
Prerequisite: lp:~salgado/offspring/builder-list
Diff against target: 104 lines (+31/-6)
3 files modified
lib/offspring/web/queuemanager/tests/test_views.py (+16/-4)
lib/offspring/web/queuemanager/views.py (+14/-1)
lib/offspring/web/templates/queuemanager/builder_details.html (+1/-1)
To merge this branch: bzr merge lp:~salgado/offspring/builder-details
Reviewer Review Type Date Requested Status
James Tunnicliffe (community) Approve
Review via email: mp+79719@code.launchpad.net

Description of the change

Update the builder_details view to omit details of the current job if the user has no rights to see it

To post a comment you must log in.
Revision history for this message
James Tunnicliffe (dooferlad) wrote :

On 18 October 2011 18:25, Guilherme Salgado
<email address hidden> wrote:
> Guilherme Salgado has proposed merging lp:~salgado/offspring/builder-details into lp:~linaro-infrastructure/offspring/private-builds with lp:~salgado/offspring/builder-list as a prerequisite.
>
> Requested reviews:
>  Linaro Infrastructure (linaro-infrastructure)
>
> For more details, see:
> https://code.launchpad.net/~salgado/offspring/builder-details/+merge/79719
>
> Update the builder_details view to omit details of the current job if the user has no rights to see it
> --
> https://code.launchpad.net/~salgado/offspring/builder-details/+merge/79719
> Your team Linaro Infrastructure is requested to review the proposed merge of lp:~salgado/offspring/builder-details into lp:~linaro-infrastructure/offspring/private-builds.
>
> === modified file 'lib/offspring/web/queuemanager/tests/test_views.py'
> --- lib/offspring/web/queuemanager/tests/test_views.py  2011-10-18 17:24:46 +0000
> +++ lib/offspring/web/queuemanager/tests/test_views.py  2011-10-18 17:24:46 +0000
> @@ -106,7 +106,10 @@
>
>
>  class BuilderListTests(TestCase):
> -    view_name = 'offspring.web.queuemanager.views.builders'
> +    view_name = 'builder_list'
> +
> +    def get_url(self, builder):
> +        return reverse(self.view_name)

What purpose does sending builder to get_url have? I see that get_url
is a 1:1 replacement for the "reverse(self.view_name)" that it
replaces in the tests below. Is this part way through a change?

>     def setUp(self):
>         super(BuilderListTests, self).setUp()
> @@ -124,7 +127,7 @@
>     def test_build_details_always_shown_when_building_public_project(self):
>         builder = factory.makeLexbuilder()
>         make_user_and_login(self.client)
> -        response = self.client.get(reverse(self.view_name))
> +        response = self.client.get(self.get_url(builder))
>         self.assertContains(
>             response, builder.current_job.project.name, status_code=200,
>             msg_prefix=response.content)
> @@ -136,7 +139,7 @@
>         user = project.owner
>         self.assertTrue(
>             self.client.login(username=user.username, password=user.username))
> -        response = self.client.get(reverse(self.view_name))
> +        response = self.client.get(self.get_url(builder))
>         self.assertContains(
>             response, builder.current_job.project.name, status_code=200,
>             msg_prefix=response.content)
> @@ -146,12 +149,19 @@
>         job = factory.makeBuildResult(project=project)
>         builder = factory.makeLexbuilder(current_job=job)
>         make_user_and_login(self.client)
> -        response = self.client.get(reverse(self.view_name))
> +        response = self.client.get(self.get_url(builder))
>         self.assertNotContains(
>             response, builder.current_job.project.name, status_code=200,
>             msg_prefix=response.content)

<snip>

Thanks,

--
James Tunnicliffe

69. By Guilherme Salgado

Add a comment

Revision history for this message
Guilherme Salgado (salgado) wrote :

[...]
> > class BuilderListTests(TestCase):
> > - view_name = 'offspring.web.queuemanager.views.builders'
> > + view_name = 'builder_list'
> > +
> > + def get_url(self, builder):
> > + return reverse(self.view_name)
>
> What purpose does sending builder to get_url have? I see that get_url
> is a 1:1 replacement for the "reverse(self.view_name)" that it
> replaces in the tests below. Is this part way through a change?

Oh, no, it's because on the other test class in this diff I inherit this
one, and there I need the builder to get the view's URL.

I've added a comment to make that clear.

Revision history for this message
Guilherme Salgado (salgado) wrote :

James, does this one look ok with the change I did?

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

Sorry, didn't spot that. Yes, that is fine.

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-18 20:40:38 +0000
+++ lib/offspring/web/queuemanager/tests/test_views.py 2011-10-18 20:48:25 +0000
@@ -103,7 +103,12 @@
103103
104104
105class BuilderListTests(TestCase):105class BuilderListTests(TestCase):
106 view_name = 'offspring.web.queuemanager.views.builders'106 view_name = 'builder_list'
107
108 def get_url(self, builder):
109 # The builder argument exists only so that the tests here also work
110 # for the builder_details view (see BuilderDetailsTests below).
111 return reverse(self.view_name)
107112
108 def setUp(self):113 def setUp(self):
109 super(BuilderListTests, self).setUp()114 super(BuilderListTests, self).setUp()
@@ -121,7 +126,7 @@
121 def test_build_details_always_shown_when_building_public_project(self):126 def test_build_details_always_shown_when_building_public_project(self):
122 builder = factory.makeLexbuilder()127 builder = factory.makeLexbuilder()
123 make_user_and_login(self.client)128 make_user_and_login(self.client)
124 response = self.client.get(reverse(self.view_name))129 response = self.client.get(self.get_url(builder))
125 self.assertContains(130 self.assertContains(
126 response, builder.current_job.project.name, status_code=200,131 response, builder.current_job.project.name, status_code=200,
127 msg_prefix=response.content)132 msg_prefix=response.content)
@@ -133,7 +138,7 @@
133 user = project.owner138 user = project.owner
134 self.assertTrue(139 self.assertTrue(
135 self.client.login(username=user.username, password=user.username))140 self.client.login(username=user.username, password=user.username))
136 response = self.client.get(reverse(self.view_name))141 response = self.client.get(self.get_url(builder))
137 self.assertContains(142 self.assertContains(
138 response, builder.current_job.project.name, status_code=200,143 response, builder.current_job.project.name, status_code=200,
139 msg_prefix=response.content)144 msg_prefix=response.content)
@@ -143,12 +148,19 @@
143 job = factory.makeBuildResult(project=project)148 job = factory.makeBuildResult(project=project)
144 builder = factory.makeLexbuilder(current_job=job)149 builder = factory.makeLexbuilder(current_job=job)
145 make_user_and_login(self.client)150 make_user_and_login(self.client)
146 response = self.client.get(reverse(self.view_name))151 response = self.client.get(self.get_url(builder))
147 self.assertNotContains(152 self.assertNotContains(
148 response, builder.current_job.project.name, status_code=200,153 response, builder.current_job.project.name, status_code=200,
149 msg_prefix=response.content)154 msg_prefix=response.content)
150155
151156
157class BuilderDetailsTests(BuilderListTests):
158 view_name = 'builder_details'
159
160 def get_url(self, builder):
161 return reverse(self.view_name, args=[builder.name])
162
163
152class BuildViewTests(TestCase):164class BuildViewTests(TestCase):
153165
154 def test_public_build(self):166 def test_public_build(self):
155167
=== modified file 'lib/offspring/web/queuemanager/views.py'
--- lib/offspring/web/queuemanager/views.py 2011-10-18 20:40:38 +0000
+++ lib/offspring/web/queuemanager/views.py 2011-10-18 20:48:25 +0000
@@ -80,6 +80,10 @@
80 # shown and the values represent whether or not the information about the80 # shown and the values represent whether or not the information about the
81 # builder's current job should be shown to the current user.81 # builder's current job should be shown to the current user.
82 builder_list = {}82 builder_list = {}
83 # Here we don't filter out the builders working on private projects (as we
84 # do with other stuff, using .accessible_by_user()) because we want to
85 # show that the builders exist and just hide the info about private
86 # projects the user is not allowed to see.
83 builders = Lexbuilder.all_objects.order_by(87 builders = Lexbuilder.all_objects.order_by(
84 "-is_active", "-machine_type", "-created_at")88 "-is_active", "-machine_type", "-created_at")
85 for builder in builders:89 for builder in builders:
@@ -98,9 +102,18 @@
98102
99@login_required103@login_required
100def builder_details(request, builderName):104def builder_details(request, builderName):
101 builder = Lexbuilder.objects.get(name=builderName)105 # Here we don't filter out the builders working on private projects (as we
106 # do with other stuff, using .accessible_by_user()) because we want to
107 # show that the builders exist and just hide the info about private
108 # projects the user is not allowed to see.
109 builder = Lexbuilder.all_objects.get(name=builderName)
110 shown_job = 'Private build'
111 job = builder.current_job
112 if job is not None and job.is_visible_to(request.user):
113 shown_job = job
102 pageData = {114 pageData = {
103 'builder': builder,115 'builder': builder,
116 'current_job': shown_job,
104 'pillar': 'builders',117 'pillar': 'builders',
105 }118 }
106 return render_to_response(119 return render_to_response(
107120
=== modified file 'lib/offspring/web/templates/queuemanager/builder_details.html'
--- lib/offspring/web/templates/queuemanager/builder_details.html 2011-01-22 04:47:32 +0000
+++ lib/offspring/web/templates/queuemanager/builder_details.html 2011-10-18 20:48:25 +0000
@@ -60,7 +60,7 @@
6060
61<dl>61<dl>
62 <dt>Job:</dt>62 <dt>Job:</dt>
63 <dd>{{builder.current_build}}</dd>63 <dd>{{current_job}}</dd>
64</dl>64</dl>
6565
66<dl>66<dl>

Subscribers

People subscribed via source and target branches