Merge lp:~stevenk/launchpad/refactor-test-bugtaskfilter into lp:launchpad

Proposed by Steve Kowalik
Status: Merged
Approved by: Steve Kowalik
Approved revision: no longer in the source branch.
Merged at revision: 16816
Proposed branch: lp:~stevenk/launchpad/refactor-test-bugtaskfilter
Merge into: lp:launchpad
Diff against target: 199 lines (+24/-74)
1 file modified
lib/lp/bugs/tests/test_bugtaskfilter.py (+24/-74)
To merge this branch: bzr merge lp:~stevenk/launchpad/refactor-test-bugtaskfilter
Reviewer Review Type Date Requested Status
William Grant code Approve
Review via email: mp+192456@code.launchpad.net

Commit message

Refactor repeated asserts in test_bugtaskfilter.py into a custom assert method.

Description of the change

When I was investigating a test failure, I came across this file. Refactor it within an inch of its life, removing a lot of duplication into a nice and neat custom assert method.

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/tests/test_bugtaskfilter.py'
2--- lib/lp/bugs/tests/test_bugtaskfilter.py 2012-08-08 07:22:51 +0000
3+++ lib/lp/bugs/tests/test_bugtaskfilter.py 2013-10-24 04:05:54 +0000
4@@ -1,4 +1,4 @@
5-# Copyright 2011 Canonical Ltd. This software is licensed under the
6+# Copyright 2011-2013 Canonical Ltd. This software is licensed under the
7 # GNU Affero General Public License version 3 (see the file LICENSE).
8
9 """Tests for lp.bugs.interfaces.bugtaskfilter."""
10@@ -23,9 +23,7 @@
11 def test_simple_case(self):
12 bug = self.factory.makeBug()
13 tasks = list(bug.bugtasks)
14- self.assertThat(
15- filter_bugtasks_by_context(None, tasks),
16- Equals(tasks))
17+ self.assertThat(filter_bugtasks_by_context(None, tasks), Equals(tasks))
18
19 def test_multiple_bugs(self):
20 bug1 = self.factory.makeBug()
21@@ -40,38 +38,34 @@
22 self.assertThat(len(filtered), Equals(3))
23 self.assertThat(filtered, Equals(tasks))
24
25+ def assertFilterBugtasksByContextNoQueries(self, bug, target, task):
26+ tasks = list(bug.bugtasks)
27+ with StormStatementRecorder() as recorder:
28+ filtered = filter_bugtasks_by_context(target, tasks)
29+ self.assertThat(recorder, HasQueryCount(Equals(0)))
30+ self.assertThat(filtered, Equals([task]))
31+
32 def test_two_product_tasks_case_no_context(self):
33 widget = self.factory.makeProduct()
34 bug = self.factory.makeBug(target=widget)
35 cogs = self.factory.makeProduct()
36 self.factory.makeBugTask(bug=bug, target=cogs)
37- tasks = list(bug.bugtasks)
38- with StormStatementRecorder() as recorder:
39- filtered = filter_bugtasks_by_context(None, tasks)
40- self.assertThat(recorder, HasQueryCount(Equals(0)))
41- self.assertThat(filtered, Equals([bug.getBugTask(widget)]))
42+ self.assertFilterBugtasksByContextNoQueries(
43+ bug, None, bug.getBugTask(widget))
44
45 def test_two_product_tasks_case(self):
46 widget = self.factory.makeProduct()
47 bug = self.factory.makeBug(target=widget)
48 cogs = self.factory.makeProduct()
49 task = self.factory.makeBugTask(bug=bug, target=cogs)
50- tasks = list(bug.bugtasks)
51- with StormStatementRecorder() as recorder:
52- filtered = filter_bugtasks_by_context(cogs, tasks)
53- self.assertThat(recorder, HasQueryCount(Equals(0)))
54- self.assertThat(filtered, Equals([task]))
55+ self.assertFilterBugtasksByContextNoQueries(bug, cogs, task)
56
57 def test_product_context_with_series_task(self):
58 bug = self.factory.makeBug()
59 widget = self.factory.makeProduct()
60 task = self.factory.makeBugTask(bug=bug, target=widget)
61 self.factory.makeBugTask(bug=bug, target=widget.development_focus)
62- tasks = list(bug.bugtasks)
63- with StormStatementRecorder() as recorder:
64- filtered = filter_bugtasks_by_context(widget, tasks)
65- self.assertThat(recorder, HasQueryCount(Equals(0)))
66- self.assertThat(filtered, Equals([task]))
67+ self.assertFilterBugtasksByContextNoQueries(bug, widget, task)
68
69 def test_productseries_context_with_series_task(self):
70 bug = self.factory.makeBug()
71@@ -79,32 +73,20 @@
72 self.factory.makeBugTask(bug=bug, target=widget)
73 series = widget.development_focus
74 task = self.factory.makeBugTask(bug=bug, target=series)
75- tasks = list(bug.bugtasks)
76- with StormStatementRecorder() as recorder:
77- filtered = filter_bugtasks_by_context(series, tasks)
78- self.assertThat(recorder, HasQueryCount(Equals(0)))
79- self.assertThat(filtered, Equals([task]))
80+ self.assertFilterBugtasksByContextNoQueries(bug, series, task)
81
82 def test_productseries_context_with_only_product_task(self):
83 bug = self.factory.makeBug()
84 widget = self.factory.makeProduct()
85 task = self.factory.makeBugTask(bug=bug, target=widget)
86 series = widget.development_focus
87- tasks = list(bug.bugtasks)
88- with StormStatementRecorder() as recorder:
89- filtered = filter_bugtasks_by_context(series, tasks)
90- self.assertThat(recorder, HasQueryCount(Equals(0)))
91- self.assertThat(filtered, Equals([task]))
92+ self.assertFilterBugtasksByContextNoQueries(bug, series, task)
93
94 def test_distro_context(self):
95 bug = self.factory.makeBug()
96 mint = self.factory.makeDistribution()
97 task = self.factory.makeBugTask(bug=bug, target=mint)
98- tasks = list(bug.bugtasks)
99- with StormStatementRecorder() as recorder:
100- filtered = filter_bugtasks_by_context(mint, tasks)
101- self.assertThat(recorder, HasQueryCount(Equals(0)))
102- self.assertThat(filtered, Equals([task]))
103+ self.assertFilterBugtasksByContextNoQueries(bug, mint, task)
104
105 def test_distro_context_with_series_task(self):
106 bug = self.factory.makeBug()
107@@ -112,11 +94,7 @@
108 task = self.factory.makeBugTask(bug=bug, target=mint)
109 devel = self.factory.makeDistroSeries(mint)
110 self.factory.makeBugTask(bug=bug, target=devel)
111- tasks = list(bug.bugtasks)
112- with StormStatementRecorder() as recorder:
113- filtered = filter_bugtasks_by_context(mint, tasks)
114- self.assertThat(recorder, HasQueryCount(Equals(0)))
115- self.assertThat(filtered, Equals([task]))
116+ self.assertFilterBugtasksByContextNoQueries(bug, mint, task)
117
118 def test_distroseries_context_with_series_task(self):
119 bug = self.factory.makeBug()
120@@ -124,63 +102,39 @@
121 self.factory.makeBugTask(bug=bug, target=mint)
122 devel = self.factory.makeDistroSeries(mint)
123 task = self.factory.makeBugTask(bug=bug, target=devel)
124- tasks = list(bug.bugtasks)
125- with StormStatementRecorder() as recorder:
126- filtered = filter_bugtasks_by_context(devel, tasks)
127- self.assertThat(recorder, HasQueryCount(Equals(0)))
128- self.assertThat(filtered, Equals([task]))
129+ self.assertFilterBugtasksByContextNoQueries(bug, devel, task)
130
131 def test_distroseries_context_with_no_series_task(self):
132 bug = self.factory.makeBug()
133 mint = self.factory.makeDistribution()
134 task = self.factory.makeBugTask(bug=bug, target=mint)
135 devel = self.factory.makeDistroSeries(mint)
136- tasks = list(bug.bugtasks)
137- with StormStatementRecorder() as recorder:
138- filtered = filter_bugtasks_by_context(devel, tasks)
139- self.assertThat(recorder, HasQueryCount(Equals(0)))
140- self.assertThat(filtered, Equals([task]))
141+ self.assertFilterBugtasksByContextNoQueries(bug, devel, task)
142
143 def test_sourcepackage_context_with_sourcepackage_task(self):
144 bug = self.factory.makeBug()
145 sp = self.factory.makeSourcePackage()
146 task = self.factory.makeBugTask(bug=bug, target=sp)
147- tasks = list(bug.bugtasks)
148- with StormStatementRecorder() as recorder:
149- filtered = filter_bugtasks_by_context(sp, tasks)
150- self.assertThat(recorder, HasQueryCount(Equals(0)))
151- self.assertThat(filtered, Equals([task]))
152+ self.assertFilterBugtasksByContextNoQueries(bug, sp, task)
153
154 def test_sourcepackage_context_with_distrosourcepackage_task(self):
155 bug = self.factory.makeBug()
156 sp = self.factory.makeSourcePackage()
157 dsp = sp.distribution_sourcepackage
158 task = self.factory.makeBugTask(bug=bug, target=dsp)
159- tasks = list(bug.bugtasks)
160- with StormStatementRecorder() as recorder:
161- filtered = filter_bugtasks_by_context(sp, tasks)
162- self.assertThat(recorder, HasQueryCount(Equals(0)))
163- self.assertThat(filtered, Equals([task]))
164+ self.assertFilterBugtasksByContextNoQueries(bug, sp, task)
165
166 def test_sourcepackage_context_series_task(self):
167 bug = self.factory.makeBug()
168 sp = self.factory.makeSourcePackage()
169 task = self.factory.makeBugTask(bug=bug, target=sp.distroseries)
170- tasks = list(bug.bugtasks)
171- with StormStatementRecorder() as recorder:
172- filtered = filter_bugtasks_by_context(sp, tasks)
173- self.assertThat(recorder, HasQueryCount(Equals(0)))
174- self.assertThat(filtered, Equals([task]))
175+ self.assertFilterBugtasksByContextNoQueries(bug, sp, task)
176
177 def test_sourcepackage_context_distro_task(self):
178 bug = self.factory.makeBug()
179 sp = self.factory.makeSourcePackage()
180 task = self.factory.makeBugTask(bug=bug, target=sp.distribution)
181- tasks = list(bug.bugtasks)
182- with StormStatementRecorder() as recorder:
183- filtered = filter_bugtasks_by_context(sp, tasks)
184- self.assertThat(recorder, HasQueryCount(Equals(0)))
185- self.assertThat(filtered, Equals([task]))
186+ self.assertFilterBugtasksByContextNoQueries(bug, sp, task)
187
188 def test_sourcepackage_context_distro_task_with_other_distro_package(self):
189 bug = self.factory.makeBug()
190@@ -189,8 +143,4 @@
191 other_sp = self.factory.makeSourcePackage(
192 sourcepackagename=sp.sourcepackagename)
193 self.factory.makeBugTask(bug=bug, target=other_sp)
194- tasks = list(bug.bugtasks)
195- with StormStatementRecorder() as recorder:
196- filtered = filter_bugtasks_by_context(sp, tasks)
197- self.assertThat(recorder, HasQueryCount(Equals(0)))
198- self.assertThat(filtered, Equals([task]))
199+ self.assertFilterBugtasksByContextNoQueries(bug, sp, task)