Merge ~cjwatson/launchpad:get-sources-list-accept-behaviour into launchpad:master
- Git
- lp:~cjwatson/launchpad
- get-sources-list-accept-behaviour
- Merge into master
Proposed by
Colin Watson
Status: | Merged |
---|---|
Approved by: | Colin Watson |
Approved revision: | 4cfd934f94fb314416be287a3050b9ce58939bdb |
Merge reported by: | Otto Co-Pilot |
Merged at revision: | not available |
Proposed branch: | ~cjwatson/launchpad:get-sources-list-accept-behaviour |
Merge into: | launchpad:master |
Prerequisite: | ~cjwatson/launchpad:snap-build-macaroon-snap-base |
Diff against target: |
479 lines (+71/-57) 14 files modified
lib/lp/buildmaster/interfaces/buildfarmjobbehaviour.py (+2/-0) lib/lp/code/model/recipebuilder.py (+1/-1) lib/lp/code/model/tests/test_recipebuilder.py (+4/-8) lib/lp/oci/model/ocirecipebuildbehaviour.py (+1/-1) lib/lp/oci/tests/test_ocirecipebuildbehaviour.py (+3/-3) lib/lp/snappy/model/snapbuildbehaviour.py (+1/-1) lib/lp/snappy/tests/test_snapbuildbehaviour.py (+10/-10) lib/lp/soyuz/adapters/archivedependencies.py (+5/-3) lib/lp/soyuz/adapters/tests/test_archivedependencies.py (+6/-2) lib/lp/soyuz/model/binarypackagebuildbehaviour.py (+1/-1) lib/lp/soyuz/model/livefsbuildbehaviour.py (+1/-1) lib/lp/soyuz/tests/test_archive.py (+8/-2) lib/lp/soyuz/tests/test_binarypackagebuildbehaviour.py (+27/-23) lib/lp/soyuz/tests/test_livefsbuildbehaviour.py (+1/-1) |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Ioana Lasc (community) | Approve | ||
Review via email: mp+401322@code.launchpad.net |
Commit message
Pass behaviour rather than build to get_sources_
Description of the change
It's straightforward to get a build from a build behaviour, but not necessarily the other way round (since the behaviour has additional state such as the builder). Refactor get_sources_
No functional change: this is just preparation for later work.
To post a comment you must log in.
Revision history for this message
Ioana Lasc (ilasc) : | # |
review:
Approve
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | diff --git a/lib/lp/buildmaster/interfaces/buildfarmjobbehaviour.py b/lib/lp/buildmaster/interfaces/buildfarmjobbehaviour.py |
2 | index e9a0b8d..4d768d8 100644 |
3 | --- a/lib/lp/buildmaster/interfaces/buildfarmjobbehaviour.py |
4 | +++ b/lib/lp/buildmaster/interfaces/buildfarmjobbehaviour.py |
5 | @@ -25,6 +25,8 @@ class IBuildFarmJobBehaviour(Interface): |
6 | "A list of `BuildBaseImageType`s indicating which types of base " |
7 | "images can be used for this build.") |
8 | |
9 | + build = Attribute("The `IBuildFarmJob` to build.") |
10 | + |
11 | archive = Attribute("The `Archive` to build against.") |
12 | |
13 | distro_arch_series = Attribute("The `DistroArchSeries` to build against.") |
14 | diff --git a/lib/lp/code/model/recipebuilder.py b/lib/lp/code/model/recipebuilder.py |
15 | index 532fbbf..dd88550 100644 |
16 | --- a/lib/lp/code/model/recipebuilder.py |
17 | +++ b/lib/lp/code/model/recipebuilder.py |
18 | @@ -86,7 +86,7 @@ class RecipeBuildBehaviour(BuildFarmJobBehaviourBase): |
19 | None).name |
20 | args['archives'], args['trusted_keys'] = ( |
21 | yield get_sources_list_for_building( |
22 | - self.build, self.distro_arch_series, None, |
23 | + self, self.distro_arch_series, None, |
24 | tools_source=config.builddmaster.bzr_builder_sources_list, |
25 | logger=logger)) |
26 | # XXX cjwatson 2017-07-26: This duplicates "series", which is common |
27 | diff --git a/lib/lp/code/model/tests/test_recipebuilder.py b/lib/lp/code/model/tests/test_recipebuilder.py |
28 | index b353d30..b578a5f 100644 |
29 | --- a/lib/lp/code/model/tests/test_recipebuilder.py |
30 | +++ b/lib/lp/code/model/tests/test_recipebuilder.py |
31 | @@ -181,8 +181,7 @@ class TestAsyncRecipeBuilder(TestRecipeBuilderBase): |
32 | job = self.makeJob(with_builder=True) |
33 | distroarchseries = job.build.distroseries.architectures[0] |
34 | expected_archives, expected_trusted_keys = ( |
35 | - yield get_sources_list_for_building( |
36 | - job.build, distroarchseries, None)) |
37 | + yield get_sources_list_for_building(job, distroarchseries, None)) |
38 | expected_archives.insert( |
39 | 0, "deb http://foo %s main" % job.build.distroseries.name) |
40 | args = yield job.extraBuildArgs() |
41 | @@ -273,8 +272,7 @@ class TestAsyncRecipeBuilder(TestRecipeBuilderBase): |
42 | job = self.makeJob(with_builder=True) |
43 | distroarchseries = job.build.distroseries.architectures[0] |
44 | expected_archives, expected_trusted_keys = ( |
45 | - yield get_sources_list_for_building( |
46 | - job.build, distroarchseries, None)) |
47 | + yield get_sources_list_for_building(job, distroarchseries, None)) |
48 | logger = BufferLogger() |
49 | extra_args = yield job.extraBuildArgs(logger) |
50 | self.assertEqual({ |
51 | @@ -308,8 +306,7 @@ class TestAsyncRecipeBuilder(TestRecipeBuilderBase): |
52 | distroarchseries = job.build.distroseries.architectures[0] |
53 | args = yield job.extraBuildArgs() |
54 | expected_archives, expected_trusted_keys = ( |
55 | - yield get_sources_list_for_building( |
56 | - job.build, distroarchseries, None)) |
57 | + yield get_sources_list_for_building(job, distroarchseries, None)) |
58 | self.assertEqual(args["archives"], expected_archives) |
59 | self.assertEqual(args["trusted_keys"], expected_trusted_keys) |
60 | |
61 | @@ -318,8 +315,7 @@ class TestAsyncRecipeBuilder(TestRecipeBuilderBase): |
62 | job = self.makeJob(git=True, with_builder=True) |
63 | distroarchseries = job.build.distroseries.architectures[0] |
64 | expected_archives, expected_trusted_keys = ( |
65 | - yield get_sources_list_for_building( |
66 | - job.build, distroarchseries, None)) |
67 | + yield get_sources_list_for_building(job, distroarchseries, None)) |
68 | extra_args = yield job.extraBuildArgs() |
69 | self.assertEqual({ |
70 | 'arch_tag': 'i386', |
71 | diff --git a/lib/lp/oci/model/ocirecipebuildbehaviour.py b/lib/lp/oci/model/ocirecipebuildbehaviour.py |
72 | index f76c6dc..e8a60f5 100644 |
73 | --- a/lib/lp/oci/model/ocirecipebuildbehaviour.py |
74 | +++ b/lib/lp/oci/model/ocirecipebuildbehaviour.py |
75 | @@ -128,7 +128,7 @@ class OCIRecipeBuildBehaviour(SnapProxyMixin, BuildFarmJobBehaviourBase): |
76 | args["name"] = build.recipe.name |
77 | args["archives"], args["trusted_keys"] = ( |
78 | yield get_sources_list_for_building( |
79 | - build, build.distro_arch_series, None, |
80 | + self, build.distro_arch_series, None, |
81 | tools_source=None, tools_fingerprint=None, |
82 | logger=logger)) |
83 | |
84 | diff --git a/lib/lp/oci/tests/test_ocirecipebuildbehaviour.py b/lib/lp/oci/tests/test_ocirecipebuildbehaviour.py |
85 | index 1fe69f3..0fb7574 100644 |
86 | --- a/lib/lp/oci/tests/test_ocirecipebuildbehaviour.py |
87 | +++ b/lib/lp/oci/tests/test_ocirecipebuildbehaviour.py |
88 | @@ -381,7 +381,7 @@ class TestAsyncOCIRecipeBuildBehaviour( |
89 | job = self.makeJob(git_ref=ref) |
90 | expected_archives, expected_trusted_keys = ( |
91 | yield get_sources_list_for_building( |
92 | - job.build, job.build.distro_arch_series, None)) |
93 | + job, job.build.distro_arch_series, None)) |
94 | for archive_line in expected_archives: |
95 | self.assertIn('universe', archive_line) |
96 | with dbuser(config.builddmaster.dbuser): |
97 | @@ -431,7 +431,7 @@ class TestAsyncOCIRecipeBuildBehaviour( |
98 | job = self.makeJob(git_ref=ref, recipe=recipe) |
99 | expected_archives, expected_trusted_keys = ( |
100 | yield get_sources_list_for_building( |
101 | - job.build, job.build.distro_arch_series, None)) |
102 | + job, job.build.distro_arch_series, None)) |
103 | for archive_line in expected_archives: |
104 | self.assertIn('universe', archive_line) |
105 | with dbuser(config.builddmaster.dbuser): |
106 | @@ -487,7 +487,7 @@ class TestAsyncOCIRecipeBuildBehaviour( |
107 | job = self.makeJob(git_ref=ref.repository.getRefByPath("HEAD")) |
108 | expected_archives, expected_trusted_keys = ( |
109 | yield get_sources_list_for_building( |
110 | - job.build, job.build.distro_arch_series, None)) |
111 | + job, job.build.distro_arch_series, None)) |
112 | for archive_line in expected_archives: |
113 | self.assertIn('universe', archive_line) |
114 | with dbuser(config.builddmaster.dbuser): |
115 | diff --git a/lib/lp/snappy/model/snapbuildbehaviour.py b/lib/lp/snappy/model/snapbuildbehaviour.py |
116 | index f554268..dda949b 100644 |
117 | --- a/lib/lp/snappy/model/snapbuildbehaviour.py |
118 | +++ b/lib/lp/snappy/model/snapbuildbehaviour.py |
119 | @@ -176,7 +176,7 @@ class SnapBuildBehaviour(SnapProxyMixin, BuildFarmJobBehaviourBase): |
120 | archive_dependencies.extend(build.snap_base.dependencies) |
121 | args["archives"], args["trusted_keys"] = ( |
122 | yield get_sources_list_for_building( |
123 | - build, build.distro_arch_series, None, |
124 | + self, build.distro_arch_series, None, |
125 | archive_dependencies=archive_dependencies, |
126 | tools_source=tools_source, tools_fingerprint=tools_fingerprint, |
127 | logger=logger)) |
128 | diff --git a/lib/lp/snappy/tests/test_snapbuildbehaviour.py b/lib/lp/snappy/tests/test_snapbuildbehaviour.py |
129 | index d223596..1d80326 100644 |
130 | --- a/lib/lp/snappy/tests/test_snapbuildbehaviour.py |
131 | +++ b/lib/lp/snappy/tests/test_snapbuildbehaviour.py |
132 | @@ -340,7 +340,7 @@ class TestAsyncSnapBuildBehaviour(StatsMixin, TestSnapBuildBehaviourBase): |
133 | job = self.makeJob(branch=branch) |
134 | expected_archives, expected_trusted_keys = ( |
135 | yield get_sources_list_for_building( |
136 | - job.build, job.build.distro_arch_series, None)) |
137 | + job, job.build.distro_arch_series, None)) |
138 | for archive_line in expected_archives: |
139 | self.assertIn('universe', archive_line) |
140 | with dbuser(config.builddmaster.dbuser): |
141 | @@ -380,7 +380,7 @@ class TestAsyncSnapBuildBehaviour(StatsMixin, TestSnapBuildBehaviourBase): |
142 | job = self.makeJob(git_ref=ref) |
143 | expected_archives, expected_trusted_keys = ( |
144 | yield get_sources_list_for_building( |
145 | - job.build, job.build.distro_arch_series, None)) |
146 | + job, job.build.distro_arch_series, None)) |
147 | for archive_line in expected_archives: |
148 | self.assertIn('universe', archive_line) |
149 | with dbuser(config.builddmaster.dbuser): |
150 | @@ -411,7 +411,7 @@ class TestAsyncSnapBuildBehaviour(StatsMixin, TestSnapBuildBehaviourBase): |
151 | job = self.makeJob(git_ref=ref.repository.getRefByPath("HEAD")) |
152 | expected_archives, expected_trusted_keys = ( |
153 | yield get_sources_list_for_building( |
154 | - job.build, job.build.distro_arch_series, None)) |
155 | + job, job.build.distro_arch_series, None)) |
156 | for archive_line in expected_archives: |
157 | self.assertIn('universe', archive_line) |
158 | with dbuser(config.builddmaster.dbuser): |
159 | @@ -445,7 +445,7 @@ class TestAsyncSnapBuildBehaviour(StatsMixin, TestSnapBuildBehaviourBase): |
160 | job = self.makeJob(git_ref=ref, private=True) |
161 | expected_archives, expected_trusted_keys = ( |
162 | yield get_sources_list_for_building( |
163 | - job.build, job.build.distro_arch_series, None)) |
164 | + job, job.build.distro_arch_series, None)) |
165 | for archive_line in expected_archives: |
166 | self.assertIn('universe', archive_line) |
167 | args = yield job.extraBuildArgs() |
168 | @@ -489,7 +489,7 @@ class TestAsyncSnapBuildBehaviour(StatsMixin, TestSnapBuildBehaviourBase): |
169 | job = self.makeJob(git_ref=ref) |
170 | expected_archives, expected_trusted_keys = ( |
171 | yield get_sources_list_for_building( |
172 | - job.build, job.build.distro_arch_series, None)) |
173 | + job, job.build.distro_arch_series, None)) |
174 | for archive_line in expected_archives: |
175 | self.assertIn('universe', archive_line) |
176 | with dbuser(config.builddmaster.dbuser): |
177 | @@ -520,7 +520,7 @@ class TestAsyncSnapBuildBehaviour(StatsMixin, TestSnapBuildBehaviourBase): |
178 | job = self.makeJob(git_ref=ref) |
179 | expected_archives, expected_trusted_keys = ( |
180 | yield get_sources_list_for_building( |
181 | - job.build, job.build.distro_arch_series, None)) |
182 | + job, job.build.distro_arch_series, None)) |
183 | for archive_line in expected_archives: |
184 | self.assertIn('universe', archive_line) |
185 | with dbuser(config.builddmaster.dbuser): |
186 | @@ -617,7 +617,7 @@ class TestAsyncSnapBuildBehaviour(StatsMixin, TestSnapBuildBehaviourBase): |
187 | job = self.makeJob(channels={"snapcraft": "edge"}) |
188 | expected_archives, expected_trusted_keys = ( |
189 | yield get_sources_list_for_building( |
190 | - job.build, job.build.distro_arch_series, None)) |
191 | + job, job.build.distro_arch_series, None)) |
192 | with dbuser(config.builddmaster.dbuser): |
193 | args = yield job.extraBuildArgs() |
194 | self.assertFalse(isProxy(args["channels"])) |
195 | @@ -629,7 +629,7 @@ class TestAsyncSnapBuildBehaviour(StatsMixin, TestSnapBuildBehaviourBase): |
196 | job = self.makeJob(channels={"snapcraft": "apt"}) |
197 | expected_archives, expected_trusted_keys = ( |
198 | yield get_sources_list_for_building( |
199 | - job.build, job.build.distro_arch_series, None)) |
200 | + job, job.build.distro_arch_series, None)) |
201 | with dbuser(config.builddmaster.dbuser): |
202 | args = yield job.extraBuildArgs() |
203 | self.assertNotIn("channels", args) |
204 | @@ -643,7 +643,7 @@ class TestAsyncSnapBuildBehaviour(StatsMixin, TestSnapBuildBehaviourBase): |
205 | job = self.makeJob() |
206 | expected_archives, expected_trusted_keys = ( |
207 | yield get_sources_list_for_building( |
208 | - job.build, job.build.distro_arch_series, None)) |
209 | + job, job.build.distro_arch_series, None)) |
210 | with dbuser(config.builddmaster.dbuser): |
211 | args = yield job.extraBuildArgs() |
212 | self.assertFalse(isProxy(args["channels"])) |
213 | @@ -658,7 +658,7 @@ class TestAsyncSnapBuildBehaviour(StatsMixin, TestSnapBuildBehaviourBase): |
214 | job = self.makeJob(channels={"snapcraft": "apt"}) |
215 | expected_archives, expected_trusted_keys = ( |
216 | yield get_sources_list_for_building( |
217 | - job.build, job.build.distro_arch_series, None)) |
218 | + job, job.build.distro_arch_series, None)) |
219 | with dbuser(config.builddmaster.dbuser): |
220 | args = yield job.extraBuildArgs() |
221 | self.assertNotIn("channels", args) |
222 | diff --git a/lib/lp/soyuz/adapters/archivedependencies.py b/lib/lp/soyuz/adapters/archivedependencies.py |
223 | index c005651..ff1d117 100644 |
224 | --- a/lib/lp/soyuz/adapters/archivedependencies.py |
225 | +++ b/lib/lp/soyuz/adapters/archivedependencies.py |
226 | @@ -250,8 +250,8 @@ def expand_dependencies(archive, distro_arch_series, pocket, component, |
227 | |
228 | |
229 | @defer.inlineCallbacks |
230 | -def get_sources_list_for_building(build, distroarchseries, sourcepackagename, |
231 | - archive_dependencies=None, |
232 | +def get_sources_list_for_building(behaviour, distroarchseries, |
233 | + sourcepackagename, archive_dependencies=None, |
234 | tools_source=None, tools_fingerprint=None, |
235 | logger=None): |
236 | """Return sources.list entries and keys required to build the given item. |
237 | @@ -264,7 +264,8 @@ def get_sources_list_for_building(build, distroarchseries, sourcepackagename, |
238 | |
239 | The keys are in an arbitrary order. |
240 | |
241 | - :param build: a context `IBuild`. |
242 | + :param behaviour: the `IBuildFarmJobBehaviour` for the context |
243 | + `IBuildFarmJob`. |
244 | :param distroarchseries: A `IDistroArchSeries` |
245 | :param sourcepackagename: A source package name (as text) |
246 | :param archive_dependencies: a sequence of `IArchiveDependency` objects |
247 | @@ -280,6 +281,7 @@ def get_sources_list_for_building(build, distroarchseries, sourcepackagename, |
248 | sources.list entries (lines) and a list of base64-encoded public |
249 | keys. |
250 | """ |
251 | + build = behaviour.build |
252 | if archive_dependencies is None: |
253 | archive_dependencies = build.archive.dependencies |
254 | deps = expand_dependencies( |
255 | diff --git a/lib/lp/soyuz/adapters/tests/test_archivedependencies.py b/lib/lp/soyuz/adapters/tests/test_archivedependencies.py |
256 | index 1945a52..4eaeab0 100644 |
257 | --- a/lib/lp/soyuz/adapters/tests/test_archivedependencies.py |
258 | +++ b/lib/lp/soyuz/adapters/tests/test_archivedependencies.py |
259 | @@ -23,6 +23,9 @@ from zope.security.proxy import removeSecurityProxy |
260 | from lp.archivepublisher.interfaces.archivegpgsigningkey import ( |
261 | IArchiveGPGSigningKey, |
262 | ) |
263 | +from lp.buildmaster.interfaces.buildfarmjobbehaviour import ( |
264 | + IBuildFarmJobBehaviour, |
265 | + ) |
266 | from lp.registry.interfaces.distribution import IDistributionSet |
267 | from lp.registry.interfaces.pocket import PackagePublishingPocket |
268 | from lp.services.config import config |
269 | @@ -203,9 +206,10 @@ class TestSourcesList(TestCaseWithFactory): |
270 | else: |
271 | prefix = archive_or_prefix + " " |
272 | expected_lines.extend([prefix + suffix for suffix in suffixes]) |
273 | + behaviour = IBuildFarmJobBehaviour(build) |
274 | sources_list, trusted_keys = yield get_sources_list_for_building( |
275 | - build, build.distro_arch_series, build.source_package_release.name, |
276 | - **kwargs) |
277 | + behaviour, build.distro_arch_series, |
278 | + build.source_package_release.name, **kwargs) |
279 | self.assertEqual(expected_lines, sources_list) |
280 | key_matchers = [ |
281 | Base64KeyMatches(self.fingerprints[key_name]) |
282 | diff --git a/lib/lp/soyuz/model/binarypackagebuildbehaviour.py b/lib/lp/soyuz/model/binarypackagebuildbehaviour.py |
283 | index 3ff5603..6b74f46 100644 |
284 | --- a/lib/lp/soyuz/model/binarypackagebuildbehaviour.py |
285 | +++ b/lib/lp/soyuz/model/binarypackagebuildbehaviour.py |
286 | @@ -165,7 +165,7 @@ class BinaryPackageBuildBehaviour(BuildFarmJobBehaviourBase): |
287 | |
288 | args['archives'], args['trusted_keys'] = ( |
289 | yield get_sources_list_for_building( |
290 | - build, das, build.source_package_release.name, logger=logger)) |
291 | + self, das, build.source_package_release.name, logger=logger)) |
292 | args['build_debug_symbols'] = build.archive.build_debug_symbols |
293 | |
294 | defer.returnValue(args) |
295 | diff --git a/lib/lp/soyuz/model/livefsbuildbehaviour.py b/lib/lp/soyuz/model/livefsbuildbehaviour.py |
296 | index 4182c79..c439559 100644 |
297 | --- a/lib/lp/soyuz/model/livefsbuildbehaviour.py |
298 | +++ b/lib/lp/soyuz/model/livefsbuildbehaviour.py |
299 | @@ -98,7 +98,7 @@ class LiveFSBuildBehaviour(BuildFarmJobBehaviourBase): |
300 | args["datestamp"] = build.version |
301 | args["archives"], args["trusted_keys"] = ( |
302 | yield get_sources_list_for_building( |
303 | - build, build.distro_arch_series, None, logger=logger)) |
304 | + self, build.distro_arch_series, None, logger=logger)) |
305 | defer.returnValue(args) |
306 | |
307 | def verifySuccessfulBuild(self): |
308 | diff --git a/lib/lp/soyuz/tests/test_archive.py b/lib/lp/soyuz/tests/test_archive.py |
309 | index 419d552..a49ccd3 100644 |
310 | --- a/lib/lp/soyuz/tests/test_archive.py |
311 | +++ b/lib/lp/soyuz/tests/test_archive.py |
312 | @@ -44,6 +44,9 @@ from lp.buildmaster.enums import ( |
313 | BuildQueueStatus, |
314 | BuildStatus, |
315 | ) |
316 | +from lp.buildmaster.interfaces.buildfarmjobbehaviour import ( |
317 | + IBuildFarmJobBehaviour, |
318 | + ) |
319 | from lp.buildmaster.interfaces.processor import IProcessorSet |
320 | from lp.registry.enums import ( |
321 | PersonVisibility, |
322 | @@ -1883,8 +1886,9 @@ class TestArchiveDependencies(TestCaseWithFactory): |
323 | PackagePublishingPocket.RELEASE) |
324 | build = self.factory.makeBinaryPackageBuild(archive=p3a, |
325 | distroarchseries=bpph.distroarchseries) |
326 | + behaviour = IBuildFarmJobBehaviour(build) |
327 | sources_list, trusted_keys = yield get_sources_list_for_building( |
328 | - build, build.distro_arch_series, |
329 | + behaviour, build.distro_arch_series, |
330 | build.source_package_release.name) |
331 | matches = MatchesRegex( |
332 | "deb http://buildd:sekrit@private-ppa.launchpad.test/" |
333 | @@ -2140,8 +2144,10 @@ class TestOverlays(TestCaseWithFactory): |
334 | self._createDep( |
335 | test_publisher, series11, 'series12', 'depdistro4', 'multiverse', |
336 | PackagePublishingPocket.UPDATES) |
337 | + behaviour = IBuildFarmJobBehaviour(build) |
338 | sources_list, trusted_keys = yield get_sources_list_for_building( |
339 | - build, build.distro_arch_series, build.source_package_release.name) |
340 | + behaviour, build.distro_arch_series, |
341 | + build.source_package_release.name) |
342 | |
343 | self.assertThat( |
344 | "\n".join(sources_list), |
345 | diff --git a/lib/lp/soyuz/tests/test_binarypackagebuildbehaviour.py b/lib/lp/soyuz/tests/test_binarypackagebuildbehaviour.py |
346 | index 35390f3..cc27742 100644 |
347 | --- a/lib/lp/soyuz/tests/test_binarypackagebuildbehaviour.py |
348 | +++ b/lib/lp/soyuz/tests/test_binarypackagebuildbehaviour.py |
349 | @@ -94,22 +94,24 @@ class TestBinaryBuildPackageBehaviour(StatsMixin, TestCaseWithFactory): |
350 | self.setUpStats() |
351 | |
352 | @defer.inlineCallbacks |
353 | - def assertExpectedInteraction(self, call_log, builder, build, chroot, |
354 | - archive, archive_purpose, component=None, |
355 | - extra_uploads=None, filemap_names=None): |
356 | + def assertExpectedInteraction(self, call_log, builder, build, behaviour, |
357 | + chroot, archive, archive_purpose, |
358 | + component=None, extra_uploads=None, |
359 | + filemap_names=None): |
360 | expected = yield self.makeExpectedInteraction( |
361 | - builder, build, chroot, archive, archive_purpose, component, |
362 | - extra_uploads, filemap_names) |
363 | + builder, build, behaviour, chroot, archive, archive_purpose, |
364 | + component, extra_uploads, filemap_names) |
365 | self.assertEqual(expected, call_log) |
366 | |
367 | @defer.inlineCallbacks |
368 | - def makeExpectedInteraction(self, builder, build, chroot, archive, |
369 | - archive_purpose, component=None, |
370 | + def makeExpectedInteraction(self, builder, build, behaviour, chroot, |
371 | + archive, archive_purpose, component=None, |
372 | extra_uploads=None, filemap_names=None): |
373 | """Build the log of calls that we expect to be made to the slave. |
374 | |
375 | :param builder: The builder we are using to build the binary package. |
376 | :param build: The build being done on the builder. |
377 | + :param behaviour: The build behaviour. |
378 | :param chroot: The `LibraryFileAlias` for the chroot in which we are |
379 | building. |
380 | :param archive: The `IArchive` into which we are building. |
381 | @@ -123,7 +125,7 @@ class TestBinaryBuildPackageBehaviour(StatsMixin, TestCaseWithFactory): |
382 | ds_name = das.distroseries.name |
383 | suite = ds_name + pocketsuffix[build.pocket] |
384 | archives, trusted_keys = yield get_sources_list_for_building( |
385 | - build, das, build.source_package_release.name) |
386 | + behaviour, das, build.source_package_release.name) |
387 | arch_indep = das.isNominatedArchIndep |
388 | if component is None: |
389 | component = build.current_component.name |
390 | @@ -178,11 +180,11 @@ class TestBinaryBuildPackageBehaviour(StatsMixin, TestCaseWithFactory): |
391 | bq = build.queueBuild() |
392 | bq.markAsBuilding(builder) |
393 | interactor = BuilderInteractor() |
394 | + behaviour = interactor.getBuildBehaviour(bq, builder, slave) |
395 | yield interactor._startBuild( |
396 | - bq, vitals, builder, slave, |
397 | - interactor.getBuildBehaviour(bq, builder, slave), BufferLogger()) |
398 | + bq, vitals, builder, slave, behaviour, BufferLogger()) |
399 | yield self.assertExpectedInteraction( |
400 | - slave.call_log, builder, build, lf, archive, |
401 | + slave.call_log, builder, build, behaviour, lf, archive, |
402 | ArchivePurpose.PRIMARY, 'universe') |
403 | self.assertEqual(1, self.stats_client.incr.call_count) |
404 | self.assertEqual( |
405 | @@ -213,11 +215,11 @@ class TestBinaryBuildPackageBehaviour(StatsMixin, TestCaseWithFactory): |
406 | bq = build.queueBuild() |
407 | bq.markAsBuilding(builder) |
408 | interactor = BuilderInteractor() |
409 | + behaviour = interactor.getBuildBehaviour(bq, builder, slave) |
410 | yield interactor._startBuild( |
411 | - bq, vitals, builder, slave, |
412 | - interactor.getBuildBehaviour(bq, builder, slave), BufferLogger()) |
413 | + bq, vitals, builder, slave, behaviour, BufferLogger()) |
414 | yield self.assertExpectedInteraction( |
415 | - slave.call_log, builder, build, lf, archive, |
416 | + slave.call_log, builder, build, behaviour, lf, archive, |
417 | ArchivePurpose.PRIMARY, 'main') |
418 | |
419 | @defer.inlineCallbacks |
420 | @@ -236,11 +238,12 @@ class TestBinaryBuildPackageBehaviour(StatsMixin, TestCaseWithFactory): |
421 | bq = build.queueBuild() |
422 | bq.markAsBuilding(builder) |
423 | interactor = BuilderInteractor() |
424 | + behaviour = interactor.getBuildBehaviour(bq, builder, slave) |
425 | yield interactor._startBuild( |
426 | - bq, vitals, builder, slave, |
427 | - interactor.getBuildBehaviour(bq, builder, slave), BufferLogger()) |
428 | + bq, vitals, builder, slave, behaviour, BufferLogger()) |
429 | yield self.assertExpectedInteraction( |
430 | - slave.call_log, builder, build, lf, archive, ArchivePurpose.PPA) |
431 | + slave.call_log, builder, build, behaviour, lf, archive, |
432 | + ArchivePurpose.PPA) |
433 | self.assertEqual(1, self.stats_client.incr.call_count) |
434 | self.assertEqual( |
435 | self.stats_client.incr.call_args_list[0][0], |
436 | @@ -273,11 +276,12 @@ class TestBinaryBuildPackageBehaviour(StatsMixin, TestCaseWithFactory): |
437 | bq = build.queueBuild() |
438 | bq.markAsBuilding(builder) |
439 | interactor = BuilderInteractor() |
440 | + behaviour = interactor.getBuildBehaviour(bq, builder, slave) |
441 | yield interactor._startBuild( |
442 | - bq, vitals, builder, slave, |
443 | - interactor.getBuildBehaviour(bq, builder, slave), BufferLogger()) |
444 | + bq, vitals, builder, slave, behaviour, BufferLogger()) |
445 | yield self.assertExpectedInteraction( |
446 | - slave.call_log, builder, build, lf, archive, ArchivePurpose.PPA, |
447 | + slave.call_log, builder, build, behaviour, lf, archive, |
448 | + ArchivePurpose.PPA, |
449 | extra_uploads=[(sprf_url, 'buildd', 'sekrit')], |
450 | filemap_names=[sprf.libraryfile.filename]) |
451 | |
452 | @@ -297,11 +301,11 @@ class TestBinaryBuildPackageBehaviour(StatsMixin, TestCaseWithFactory): |
453 | bq = build.queueBuild() |
454 | bq.markAsBuilding(builder) |
455 | interactor = BuilderInteractor() |
456 | + behaviour = interactor.getBuildBehaviour(bq, builder, slave) |
457 | yield interactor._startBuild( |
458 | - bq, vitals, builder, slave, |
459 | - interactor.getBuildBehaviour(bq, builder, slave), BufferLogger()) |
460 | + bq, vitals, builder, slave, behaviour, BufferLogger()) |
461 | yield self.assertExpectedInteraction( |
462 | - slave.call_log, builder, build, lf, archive, |
463 | + slave.call_log, builder, build, behaviour, lf, archive, |
464 | ArchivePurpose.PARTNER) |
465 | |
466 | def test_dont_dispatch_release_builds(self): |
467 | diff --git a/lib/lp/soyuz/tests/test_livefsbuildbehaviour.py b/lib/lp/soyuz/tests/test_livefsbuildbehaviour.py |
468 | index 4820132..8d6f33b 100644 |
469 | --- a/lib/lp/soyuz/tests/test_livefsbuildbehaviour.py |
470 | +++ b/lib/lp/soyuz/tests/test_livefsbuildbehaviour.py |
471 | @@ -201,7 +201,7 @@ class TestAsyncLiveFSBuildBehaviour(TestLiveFSBuildBehaviourBase): |
472 | with_builder=True) |
473 | expected_archives, expected_trusted_keys = ( |
474 | yield get_sources_list_for_building( |
475 | - job.build, job.build.distro_arch_series, None)) |
476 | + job, job.build.distro_arch_series, None)) |
477 | extra_args = yield job.extraBuildArgs() |
478 | self.assertEqual({ |
479 | "archive_private": False, |