Merge lp:~wgrant/launchpad/buildqueue-hide-empty into lp:launchpad

Proposed by William Grant
Status: Merged
Merged at revision: 18519
Proposed branch: lp:~wgrant/launchpad/buildqueue-hide-empty
Merge into: lp:launchpad
Diff against target: 76 lines (+32/-5)
2 files modified
lib/lp/buildmaster/browser/tests/test_builder.py (+26/-1)
lib/lp/buildmaster/templates/builders-index.pt (+6/-4)
To merge this branch: bzr merge lp:~wgrant/launchpad/buildqueue-hide-empty
Reviewer Review Type Date Requested Status
Colin Watson (community) Approve
Review via email: mp+335533@code.launchpad.net

Commit message

Hide the virt/nonvirt queue portlets on BuilderSet:+index if they'd be empty.

Description of the change

Hide the virt/nonvirt queue portlets on BuilderSet:+index if they'd be empty.

To post a comment you must log in.
Revision history for this message
Colin Watson (cjwatson) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'lib/lp/buildmaster/browser/tests/test_builder.py'
2--- lib/lp/buildmaster/browser/tests/test_builder.py 2015-10-21 09:37:08 +0000
3+++ lib/lp/buildmaster/browser/tests/test_builder.py 2017-12-21 21:06:05 +0000
4@@ -12,6 +12,7 @@
5 from lp.buildmaster.interfaces.builder import IBuilderSet
6 from lp.services.job.model.job import Job
7 from lp.testing import (
8+ admin_logged_in,
9 record_two_runs,
10 TestCaseWithFactory,
11 )
12@@ -22,7 +23,7 @@
13
14 def builders_homepage_render():
15 builders = getUtility(IBuilderSet)
16- create_initialized_view(builders, "+index").render()
17+ return create_initialized_view(builders, "+index").render()
18
19
20 class TestBuildersHomepage(TestCaseWithFactory, BuildCreationMixin):
21@@ -90,3 +91,27 @@
22 recorder1, recorder2 = record_two_runs(
23 builders_homepage_render, create_builds, nb_objects)
24 self.assertThat(recorder2, HasQueryCount.byEquality(recorder1))
25+
26+ def test_category_portlet_not_shown_if_empty(self):
27+ content = builders_homepage_render()
28+ self.assertIn("Virtual build status", content)
29+ self.assertIn("Non-virtual build status", content)
30+
31+ with admin_logged_in():
32+ getUtility(IBuilderSet).getByName('frog').active = False
33+ content = builders_homepage_render()
34+ self.assertNotIn("Virtual build status", content)
35+ self.assertIn("Non-virtual build status", content)
36+
37+ with admin_logged_in():
38+ getUtility(IBuilderSet).getByName('bob').active = False
39+ getUtility(IBuilderSet).getByName('frog').active = True
40+ content = builders_homepage_render()
41+ self.assertIn("Virtual build status", content)
42+ self.assertNotIn("Non-virtual build status", content)
43+
44+ with admin_logged_in():
45+ getUtility(IBuilderSet).getByName('frog').active = False
46+ content = builders_homepage_render()
47+ self.assertNotIn("Virtual build status", content)
48+ self.assertNotIn("Non-virtual build status", content)
49
50=== modified file 'lib/lp/buildmaster/templates/builders-index.pt'
51--- lib/lp/buildmaster/templates/builders-index.pt 2016-10-03 13:02:24 +0000
52+++ lib/lp/buildmaster/templates/builders-index.pt 2017-12-21 21:06:05 +0000
53@@ -79,17 +79,19 @@
54 </div><!-- portlet -->
55 </div><!-- yui-u -->
56
57- <div class="yui-u">
58+ <div tal:define="category view/virt_builders"
59+ tal:condition="category/groups" class="yui-u">
60 <div id="virt-queue-status" class="portlet">
61- <div tal:define="category view/virt_builders">
62+ <div>
63 <div metal:use-macro="template/macros/builder-category" />
64 </div>
65 </div><!-- portlet -->
66 </div><!-- yui-u -->
67
68- <div class="yui-u">
69+ <div tal:define="category view/nonvirt_builders"
70+ tal:condition="category/groups" class="yui-u">
71 <div id="nonvirt-queue-status" class="portlet">
72- <div tal:define="category view/nonvirt_builders">
73+ <div>
74 <div metal:use-macro="template/macros/builder-category" />
75 </div>
76 </div><!-- portlet -->