Merge lp:~salgado/launchpad/tech-debt into lp:launchpad

Proposed by Guilherme Salgado
Status: Merged
Approved by: Ian Booth
Approved revision: no longer in the source branch.
Merged at revision: 14777
Proposed branch: lp:~salgado/launchpad/tech-debt
Merge into: lp:launchpad
Diff against target: 512 lines (+67/-59)
10 files modified
lib/lp/buildmaster/interfaces/builder.py (+1/-6)
lib/lp/buildmaster/model/builder.py (+1/-18)
lib/lp/buildmaster/tests/test_builder.py (+8/-5)
lib/lp/buildmaster/tests/test_manager.py (+15/-10)
lib/lp/buildmaster/tests/test_packagebuild.py (+2/-1)
lib/lp/code/model/tests/test_sourcepackagerecipebuild.py (+2/-1)
lib/lp/soyuz/tests/test_binarypackagebuild.py (+4/-1)
lib/lp/soyuz/tests/test_binarypackagebuildbehavior.py (+29/-15)
lib/lp/translations/stories/buildfarm/xx-build-summary.txt (+3/-1)
lib/lp/translations/tests/test_translationtemplatesbuildbehavior.py (+2/-1)
To merge this branch: bzr merge lp:~salgado/launchpad/tech-debt
Reviewer Review Type Date Requested Status
Ian Booth (community) Approve
Review via email: mp+92390@code.launchpad.net

Commit message

[bug=888010] [r=wallyworld][no-qa] Remove setSlaveForTesting() and some more testing-specific code from Builder

Description of the change

Remove Builder.setSlaveForTesting and some more testing-specific code

To post a comment you must log in.
Revision history for this message
Ian Booth (wallyworld) wrote :

Thank you, this is a great change.

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/interfaces/builder.py'
2--- lib/lp/buildmaster/interfaces/builder.py 2012-01-11 08:52:22 +0000
3+++ lib/lp/buildmaster/interfaces/builder.py 2012-02-10 05:25:23 +0000
4@@ -193,9 +193,6 @@
5 def failBuilder(reason):
6 """Mark builder as failed for a given reason."""
7
8- def setSlaveForTesting(proxy):
9- """Sets the RPC proxy through which to operate the build slave."""
10-
11 def verifySlaveBuildCookie(slave_build_id):
12 """Verify that a slave's build cookie is consistent.
13
14@@ -337,11 +334,9 @@
15 or immediately if it's a non-virtual slave.
16 """
17
18- def findAndStartJob(buildd_slave=None):
19+ def findAndStartJob():
20 """Find a job to run and send it to the buildd slave.
21
22- :param buildd_slave: An optional buildd slave that this builder should
23- talk to.
24 :return: A Deferred whose value is the `IBuildQueue` instance
25 found or None if no job was found.
26 """
27
28=== modified file 'lib/lp/buildmaster/model/builder.py'
29--- lib/lp/buildmaster/model/builder.py 2012-01-24 10:09:47 +0000
30+++ lib/lp/buildmaster/model/builder.py 2012-02-10 05:25:23 +0000
31@@ -540,25 +540,11 @@
32
33 return d.addCallback(got_resume_ok).addErrback(got_resume_bad)
34
35- _testing_slave = None
36-
37 @cachedproperty
38 def slave(self):
39 """See IBuilder."""
40- # When testing it's possible to substitute the slave object, which is
41- # usually an XMLRPC client, with a stub object that removes the need
42- # to actually create a buildd slave in various states - which can be
43- # hard to create. We cannot use the property cache because it is
44- # cleared on transaction boundaries, hence the low tech approach.
45- if self._testing_slave is not None:
46- return self._testing_slave
47 return BuilderSlave.makeBuilderSlave(self.url, self.vm_host)
48
49- def setSlaveForTesting(self, proxy):
50- """See IBuilder."""
51- self._testing_slave = proxy
52- del get_property_cache(self).slave
53-
54 def startBuild(self, build_queue_item, logger):
55 """See IBuilder."""
56 self.current_build_behavior = build_queue_item.required_build_behavior
57@@ -845,7 +831,7 @@
58 self.failBuilder(error_message)
59 return defer.succeed(None)
60
61- def findAndStartJob(self, buildd_slave=None):
62+ def findAndStartJob(self):
63 """See IBuilder."""
64 # XXX This method should be removed in favour of two separately
65 # called methods that find and dispatch the job. It will
66@@ -857,9 +843,6 @@
67 logger.debug("No build candidates available for builder.")
68 return defer.succeed(None)
69
70- if buildd_slave is not None:
71- self.setSlaveForTesting(buildd_slave)
72-
73 d = self._dispatchBuildCandidate(candidate)
74 return d.addCallback(lambda ignored: candidate)
75
76
77=== modified file 'lib/lp/buildmaster/tests/test_builder.py'
78--- lib/lp/buildmaster/tests/test_builder.py 2012-01-11 08:52:22 +0000
79+++ lib/lp/buildmaster/tests/test_builder.py 2012-02-10 05:25:23 +0000
80@@ -205,7 +205,7 @@
81 processor = self.factory.makeProcessor(name="i386")
82 builder = self.factory.makeBuilder(
83 processor=processor, virtualized=True, vm_host="bladh")
84- builder.setSlaveForTesting(OkSlave())
85+ self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(OkSlave()))
86 distroseries = self.factory.makeDistroSeries()
87 das = self.factory.makeDistroArchSeries(
88 distroseries=distroseries, architecturetag="i386",
89@@ -370,7 +370,8 @@
90 builder, build = self._setupBinaryBuildAndBuilder()
91 candidate = build.queueBuild()
92 building_slave = BuildingSlave()
93- builder.setSlaveForTesting(building_slave)
94+ self.patch(
95+ BuilderSlave, 'makeBuilderSlave', FakeMethod(building_slave))
96 candidate.markAsBuilding(builder)
97
98 # At this point we should see a valid behaviour on the builder:
99@@ -405,7 +406,7 @@
100 build_status=None, logtail=False, filemap=None,
101 dependencies=None):
102 builder = self.factory.makeBuilder()
103- builder.setSlaveForTesting(slave)
104+ self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(slave))
105 d = builder.slaveStatus()
106
107 def got_status(status_dict):
108@@ -458,13 +459,15 @@
109
110 def test_isAvailable_with_slave_fault(self):
111 builder = self.factory.makeBuilder()
112- builder.setSlaveForTesting(BrokenSlave())
113+ self.patch(
114+ BuilderSlave, 'makeBuilderSlave', FakeMethod(BrokenSlave()))
115 d = builder.isAvailable()
116 return d.addCallback(self.assertFalse)
117
118 def test_isAvailable_with_slave_idle(self):
119 builder = self.factory.makeBuilder()
120- builder.setSlaveForTesting(OkSlave())
121+ self.patch(
122+ BuilderSlave, 'makeBuilderSlave', FakeMethod(OkSlave()))
123 d = builder.isAvailable()
124 return d.addCallback(self.assertTrue)
125
126
127=== modified file 'lib/lp/buildmaster/tests/test_manager.py'
128--- lib/lp/buildmaster/tests/test_manager.py 2012-01-20 15:42:44 +0000
129+++ lib/lp/buildmaster/tests/test_manager.py 2012-02-10 05:25:23 +0000
130@@ -33,7 +33,10 @@
131 NewBuildersScanner,
132 SlaveScanner,
133 )
134-from lp.buildmaster.model.builder import Builder
135+from lp.buildmaster.model.builder import (
136+ Builder,
137+ BuilderSlave,
138+ )
139 from lp.buildmaster.tests.harness import BuilddManagerTestSetup
140 from lp.buildmaster.tests.mock_slaves import (
141 BrokenSlave,
142@@ -134,7 +137,7 @@
143 # Reset sampledata builder.
144 builder = getUtility(IBuilderSet)[BOB_THE_BUILDER_NAME]
145 self._resetBuilder(builder)
146- builder.setSlaveForTesting(OkSlave())
147+ self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(OkSlave()))
148 # Set this to 1 here so that _checkDispatch can make sure it's
149 # reset to 0 after a successful dispatch.
150 builder.failure_count = 1
151@@ -246,7 +249,8 @@
152
153 login('foo.bar@canonical.com')
154 builder.builderok = True
155- builder.setSlaveForTesting(BuildingSlave(build_id='8-1'))
156+ self.patch(BuilderSlave, 'makeBuilderSlave',
157+ FakeMethod(BuildingSlave(build_id='8-1')))
158 transaction.commit()
159 login(ANONYMOUS)
160
161@@ -263,7 +267,7 @@
162 def test_scan_with_nothing_to_dispatch(self):
163 factory = LaunchpadObjectFactory()
164 builder = factory.makeBuilder()
165- builder.setSlaveForTesting(OkSlave())
166+ self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(OkSlave()))
167 scanner = self._getScanner(builder_name=builder.name)
168 d = scanner.scan()
169 return d.addCallback(self._checkNoDispatch, builder)
170@@ -272,7 +276,7 @@
171 # Reset sampledata builder.
172 builder = getUtility(IBuilderSet)[BOB_THE_BUILDER_NAME]
173 self._resetBuilder(builder)
174- builder.setSlaveForTesting(OkSlave())
175+ self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(OkSlave()))
176 builder.manual = True
177 scanner = self._getScanner()
178 d = scanner.scan()
179@@ -283,7 +287,7 @@
180 # Reset sampledata builder.
181 builder = getUtility(IBuilderSet)[BOB_THE_BUILDER_NAME]
182 self._resetBuilder(builder)
183- builder.setSlaveForTesting(OkSlave())
184+ self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(OkSlave()))
185 builder.builderok = False
186 scanner = self._getScanner()
187 d = scanner.scan()
188@@ -295,7 +299,8 @@
189 def test_scan_of_broken_slave(self):
190 builder = getUtility(IBuilderSet)[BOB_THE_BUILDER_NAME]
191 self._resetBuilder(builder)
192- builder.setSlaveForTesting(BrokenSlave())
193+ self.patch(
194+ BuilderSlave, 'makeBuilderSlave', FakeMethod(BrokenSlave()))
195 builder.failure_count = 0
196 scanner = self._getScanner(builder_name=builder.name)
197 d = scanner.scan()
198@@ -390,7 +395,7 @@
199 getUtility(IBuilderSet)[BOB_THE_BUILDER_NAME])
200 self._resetBuilder(builder)
201 self.assertEqual(0, builder.failure_count)
202- builder.setSlaveForTesting(slave)
203+ self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(slave))
204 builder.vm_host = "fake_vm_host"
205
206 scanner = self._getScanner()
207@@ -434,7 +439,7 @@
208 # For now, we can only cancel virtual builds.
209 builder.virtualized = True
210 builder.vm_host = "fake_vm_host"
211- builder.setSlaveForTesting(slave)
212+ self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(slave))
213 transaction.commit()
214 login(ANONYMOUS)
215 buildqueue = builder.currentjob
216@@ -508,7 +513,7 @@
217 slave = OkSlave()
218 slave.resume = fake_resume
219 self.builder.vm_host = "fake_vm_host"
220- self.builder.setSlaveForTesting(slave)
221+ self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(slave))
222 buildqueue = self.builder.currentjob
223 build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(buildqueue)
224 build.status = BuildStatus.CANCELLING
225
226=== modified file 'lib/lp/buildmaster/tests/test_packagebuild.py'
227--- lib/lp/buildmaster/tests/test_packagebuild.py 2012-01-11 08:52:22 +0000
228+++ lib/lp/buildmaster/tests/test_packagebuild.py 2012-02-10 05:25:23 +0000
229@@ -26,6 +26,7 @@
230 IPackageBuildSet,
231 IPackageBuildSource,
232 )
233+from lp.buildmaster.model.builder import BuilderSlave
234 from lp.buildmaster.model.buildfarmjob import BuildFarmJob
235 from lp.buildmaster.model.packagebuild import PackageBuild
236 from lp.buildmaster.tests.mock_slaves import WaitingSlave
237@@ -303,7 +304,7 @@
238 self.build.buildqueue_record.setDateStarted(UTC_NOW)
239 self.slave = WaitingSlave('BuildStatus.OK')
240 self.slave.valid_file_hashes.append('test_file_hash')
241- builder.setSlaveForTesting(self.slave)
242+ self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(self.slave))
243
244 # We overwrite the buildmaster root to use a temp directory.
245 tempdir = tempfile.mkdtemp()
246
247=== modified file 'lib/lp/code/model/tests/test_sourcepackagerecipebuild.py'
248--- lib/lp/code/model/tests/test_sourcepackagerecipebuild.py 2012-01-11 08:52:22 +0000
249+++ lib/lp/code/model/tests/test_sourcepackagerecipebuild.py 2012-02-10 05:25:23 +0000
250@@ -21,6 +21,7 @@
251 from lp.app.errors import NotFoundError
252 from lp.buildmaster.enums import BuildStatus
253 from lp.buildmaster.interfaces.buildqueue import IBuildQueue
254+from lp.buildmaster.model.builder import BuilderSlave
255 from lp.buildmaster.model.buildfarmjob import BuildFarmJob
256 from lp.buildmaster.model.packagebuild import PackageBuild
257 from lp.buildmaster.tests.mock_slaves import WaitingSlave
258@@ -608,7 +609,7 @@
259 result=True)
260 queue_record.builder = self.factory.makeBuilder()
261 slave = WaitingSlave('BuildStatus.OK')
262- queue_record.builder.setSlaveForTesting(slave)
263+ self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(slave))
264 return build
265
266 def assertDeferredNotifyCount(self, status, build, expected_count):
267
268=== modified file 'lib/lp/soyuz/tests/test_binarypackagebuild.py'
269--- lib/lp/soyuz/tests/test_binarypackagebuild.py 2012-01-11 08:52:22 +0000
270+++ lib/lp/soyuz/tests/test_binarypackagebuild.py 2012-02-10 05:25:23 +0000
271@@ -18,6 +18,7 @@
272 from lp.buildmaster.interfaces.builder import IBuilderSet
273 from lp.buildmaster.interfaces.buildqueue import IBuildQueue
274 from lp.buildmaster.interfaces.packagebuild import IPackageBuild
275+from lp.buildmaster.model.builder import BuilderSlave
276 from lp.buildmaster.model.buildqueue import BuildQueue
277 from lp.buildmaster.tests.mock_slaves import WaitingSlave
278 from lp.buildmaster.tests.test_packagebuild import (
279@@ -48,6 +49,7 @@
280 logout,
281 TestCaseWithFactory,
282 )
283+from lp.testing.fakemethod import FakeMethod
284 from lp.testing.layers import (
285 DatabaseFunctionalLayer,
286 LaunchpadZopelessLayer,
287@@ -522,7 +524,8 @@
288 self.build = gedit_src_hist.createMissingBuilds()[0]
289
290 self.builder = self.factory.makeBuilder()
291- self.builder.setSlaveForTesting(WaitingSlave('BuildStatus.OK'))
292+ self.patch(BuilderSlave, 'makeBuilderSlave',
293+ FakeMethod(WaitingSlave('BuildStatus.OK')))
294 self.build.buildqueue_record.markAsBuilding(self.builder)
295
296 def testDependencies(self):
297
298=== modified file 'lib/lp/soyuz/tests/test_binarypackagebuildbehavior.py'
299--- lib/lp/soyuz/tests/test_binarypackagebuildbehavior.py 2012-01-20 15:42:44 +0000
300+++ lib/lp/soyuz/tests/test_binarypackagebuildbehavior.py 2012-02-10 05:25:23 +0000
301@@ -18,6 +18,7 @@
302 from zope.security.proxy import removeSecurityProxy
303
304 from lp.buildmaster.enums import BuildStatus
305+from lp.buildmaster.model.builder import BuilderSlave
306 from lp.buildmaster.tests.mock_slaves import (
307 AbortedSlave,
308 AbortingSlave,
309@@ -40,6 +41,7 @@
310 from lp.soyuz.enums import ArchivePurpose
311 from lp.testing import TestCaseWithFactory
312 from lp.testing.dbuser import switch_dbuser
313+from lp.testing.fakemethod import FakeMethod
314 from lp.testing.layers import LaunchpadZopelessLayer
315
316
317@@ -138,7 +140,7 @@
318 archive = self.factory.makeArchive(virtualized=False)
319 slave = OkSlave()
320 builder = self.factory.makeBuilder(virtualized=False)
321- builder.setSlaveForTesting(slave)
322+ self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(slave))
323 build = self.factory.makeBinaryPackageBuild(
324 builder=builder, archive=archive)
325 lf = self.factory.makeLibraryFileAlias()
326@@ -158,7 +160,7 @@
327 slave = OkSlave()
328 builder = self.factory.makeBuilder(
329 virtualized=True, vm_host="foohost")
330- builder.setSlaveForTesting(slave)
331+ self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(slave))
332 build = self.factory.makeBinaryPackageBuild(
333 builder=builder, archive=archive)
334 lf = self.factory.makeLibraryFileAlias()
335@@ -181,7 +183,7 @@
336 virtualized=False, purpose=ArchivePurpose.PARTNER)
337 slave = OkSlave()
338 builder = self.factory.makeBuilder(virtualized=False)
339- builder.setSlaveForTesting(slave)
340+ self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(slave))
341 build = self.factory.makeBinaryPackageBuild(
342 builder=builder, archive=archive)
343 lf = self.factory.makeLibraryFileAlias()
344@@ -309,7 +311,8 @@
345 # When a package fails to build, make sure the builder notes are
346 # stored and the build status is set as failed.
347 waiting_slave = WaitingSlave('BuildStatus.PACKAGEFAIL')
348- self.builder.setSlaveForTesting(waiting_slave)
349+ self.patch(BuilderSlave, 'makeBuilderSlave',
350+ FakeMethod(waiting_slave))
351
352 def got_update(ignored):
353 self.assertBuildProperties(self.build)
354@@ -322,7 +325,8 @@
355 # Package build was left in dependency wait.
356 DEPENDENCIES = 'baz (>= 1.0.1)'
357 waiting_slave = WaitingSlave('BuildStatus.DEPFAIL', DEPENDENCIES)
358- self.builder.setSlaveForTesting(waiting_slave)
359+ self.patch(BuilderSlave, 'makeBuilderSlave',
360+ FakeMethod(waiting_slave))
361
362 def got_update(ignored):
363 self.assertBuildProperties(self.build)
364@@ -335,7 +339,8 @@
365 def test_chrootfail_collection(self):
366 # There was a chroot problem for this build.
367 waiting_slave = WaitingSlave('BuildStatus.CHROOTFAIL')
368- self.builder.setSlaveForTesting(waiting_slave)
369+ self.patch(BuilderSlave, 'makeBuilderSlave',
370+ FakeMethod(waiting_slave))
371
372 def got_update(ignored):
373 self.assertBuildProperties(self.build)
374@@ -347,7 +352,8 @@
375 def test_builderfail_collection(self):
376 # The builder failed after we dispatched the build.
377 waiting_slave = WaitingSlave('BuildStatus.BUILDERFAIL')
378- self.builder.setSlaveForTesting(waiting_slave)
379+ self.patch(BuilderSlave, 'makeBuilderSlave',
380+ FakeMethod(waiting_slave))
381
382 def got_update(ignored):
383 self.assertEqual(
384@@ -363,7 +369,8 @@
385
386 def test_building_collection(self):
387 # The builder is still building the package.
388- self.builder.setSlaveForTesting(BuildingSlave())
389+ self.patch(BuilderSlave, 'makeBuilderSlave',
390+ FakeMethod(BuildingSlave()))
391
392 def got_update(ignored):
393 # The fake log is returned from the BuildingSlave() mock.
394@@ -374,7 +381,8 @@
395
396 def test_aborted_collection(self):
397 # The builder aborted the job.
398- self.builder.setSlaveForTesting(AbortedSlave())
399+ self.patch(BuilderSlave, 'makeBuilderSlave',
400+ FakeMethod(AbortedSlave()))
401
402 def got_update(ignored):
403 self.assertEqual(BuildStatus.NEEDSBUILD, self.build.status)
404@@ -384,7 +392,8 @@
405
406 def test_aborting_collection(self):
407 # The builder is in the process of aborting.
408- self.builder.setSlaveForTesting(AbortingSlave())
409+ self.patch(BuilderSlave, 'makeBuilderSlave',
410+ FakeMethod(AbortingSlave()))
411
412 def got_update(ignored):
413 self.assertEqual(
414@@ -398,7 +407,8 @@
415 # If we collected a build for a superseded/deleted source then
416 # the build should get marked superseded as the build results
417 # get discarded.
418- self.builder.setSlaveForTesting(WaitingSlave('BuildStatus.OK'))
419+ self.patch(BuilderSlave, 'makeBuilderSlave',
420+ FakeMethod(WaitingSlave('BuildStatus.OK')))
421 spr = removeSecurityProxy(self.build.source_package_release)
422 pub = self.build.current_source_publication
423 pub.requestDeletion(spr.creator)
424@@ -412,7 +422,8 @@
425
426 def test_uploading_collection(self):
427 # After a successful build, the status should be UPLOADING.
428- self.builder.setSlaveForTesting(WaitingSlave('BuildStatus.OK'))
429+ self.patch(BuilderSlave, 'makeBuilderSlave',
430+ FakeMethod(WaitingSlave('BuildStatus.OK')))
431
432 def got_update(ignored):
433 self.assertEqual(self.build.status, BuildStatus.UPLOADING)
434@@ -425,7 +436,8 @@
435
436 def test_givenback_collection(self):
437 waiting_slave = WaitingSlave('BuildStatus.GIVENBACK')
438- self.builder.setSlaveForTesting(waiting_slave)
439+ self.patch(BuilderSlave, 'makeBuilderSlave',
440+ FakeMethod(waiting_slave))
441 score = self.candidate.lastscore
442
443 def got_update(ignored):
444@@ -440,7 +452,8 @@
445 return d.addCallback(got_update)
446
447 def test_log_file_collection(self):
448- self.builder.setSlaveForTesting(WaitingSlave('BuildStatus.OK'))
449+ self.patch(BuilderSlave, 'makeBuilderSlave',
450+ FakeMethod(WaitingSlave('BuildStatus.OK')))
451 self.build.status = BuildStatus.FULLYBUILT
452 old_tmps = sorted(os.listdir('/tmp'))
453
454@@ -488,7 +501,8 @@
455 def test_private_build_log_storage(self):
456 # Builds in private archives should have their log uploaded to
457 # the restricted librarian.
458- self.builder.setSlaveForTesting(WaitingSlave('BuildStatus.OK'))
459+ self.patch(BuilderSlave, 'makeBuilderSlave',
460+ FakeMethod(WaitingSlave('BuildStatus.OK')))
461
462 # Go behind Storm's back since the field validator on
463 # Archive.private prevents us from setting it to True with
464
465=== modified file 'lib/lp/translations/stories/buildfarm/xx-build-summary.txt'
466--- lib/lp/translations/stories/buildfarm/xx-build-summary.txt 2012-01-15 13:32:27 +0000
467+++ lib/lp/translations/stories/buildfarm/xx-build-summary.txt 2012-02-10 05:25:23 +0000
468@@ -9,12 +9,14 @@
469
470 Create a builder working on a TranslationTemplatesBuild for a branch.
471
472+ >>> from testtools.monkey import patch
473 >>> from zope.component import getUtility
474 >>> from lp.app.interfaces.launchpad import ILaunchpadCelebrities
475 >>> from lp.services.librarian.interfaces import (
476 ... ILibraryFileAliasSet)
477 >>> from lp.app.enums import ServiceUsage
478 >>> from lp.buildmaster.interfaces.buildqueue import IBuildQueueSet
479+ >>> from lp.buildmaster.model.builder import BuilderSlave
480 >>> from lp.testing.factory import (
481 ... remove_security_proxy_and_shout_at_engineer)
482 >>> from lp.testing.fakemethod import FakeMethod
483@@ -51,7 +53,7 @@
484 ... fake_chroot)
485
486 >>> builder = factory.makeBuilder(vm_host=factory.getUniqueString())
487- >>> builder.setSlaveForTesting(FakeSlave())
488+ >>> _ = patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(FakeSlave()))
489 >>> buildqueue.markAsBuilding(builder)
490
491 >>> builder_page = canonical_url(builder)
492
493=== modified file 'lib/lp/translations/tests/test_translationtemplatesbuildbehavior.py'
494--- lib/lp/translations/tests/test_translationtemplatesbuildbehavior.py 2012-02-01 05:57:16 +0000
495+++ lib/lp/translations/tests/test_translationtemplatesbuildbehavior.py 2012-02-10 05:25:23 +0000
496@@ -20,6 +20,7 @@
497 IBuildFarmJobBehavior,
498 )
499 from lp.buildmaster.interfaces.buildqueue import IBuildQueueSet
500+from lp.buildmaster.model.builder import BuilderSlave
501 from lp.buildmaster.tests.mock_slaves import (
502 SlaveTestHelpers,
503 WaitingSlave,
504@@ -79,7 +80,7 @@
505 behavior = IBuildFarmJobBehavior(specific_job)
506 slave = WaitingSlave()
507 behavior._builder = removeSecurityProxy(self.factory.makeBuilder())
508- behavior._builder.setSlaveForTesting(slave)
509+ self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(slave))
510 if use_fake_chroot:
511 lf = self.factory.makeLibraryFileAlias()
512 self.layer.txn.commit()