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
=== modified file 'lib/lp/buildmaster/interfaces/builder.py'
--- lib/lp/buildmaster/interfaces/builder.py 2012-01-11 08:52:22 +0000
+++ lib/lp/buildmaster/interfaces/builder.py 2012-02-10 05:25:23 +0000
@@ -193,9 +193,6 @@
193 def failBuilder(reason):193 def failBuilder(reason):
194 """Mark builder as failed for a given reason."""194 """Mark builder as failed for a given reason."""
195195
196 def setSlaveForTesting(proxy):
197 """Sets the RPC proxy through which to operate the build slave."""
198
199 def verifySlaveBuildCookie(slave_build_id):196 def verifySlaveBuildCookie(slave_build_id):
200 """Verify that a slave's build cookie is consistent.197 """Verify that a slave's build cookie is consistent.
201198
@@ -337,11 +334,9 @@
337 or immediately if it's a non-virtual slave.334 or immediately if it's a non-virtual slave.
338 """335 """
339336
340 def findAndStartJob(buildd_slave=None):337 def findAndStartJob():
341 """Find a job to run and send it to the buildd slave.338 """Find a job to run and send it to the buildd slave.
342339
343 :param buildd_slave: An optional buildd slave that this builder should
344 talk to.
345 :return: A Deferred whose value is the `IBuildQueue` instance340 :return: A Deferred whose value is the `IBuildQueue` instance
346 found or None if no job was found.341 found or None if no job was found.
347 """342 """
348343
=== modified file 'lib/lp/buildmaster/model/builder.py'
--- lib/lp/buildmaster/model/builder.py 2012-01-24 10:09:47 +0000
+++ lib/lp/buildmaster/model/builder.py 2012-02-10 05:25:23 +0000
@@ -540,25 +540,11 @@
540540
541 return d.addCallback(got_resume_ok).addErrback(got_resume_bad)541 return d.addCallback(got_resume_ok).addErrback(got_resume_bad)
542542
543 _testing_slave = None
544
545 @cachedproperty543 @cachedproperty
546 def slave(self):544 def slave(self):
547 """See IBuilder."""545 """See IBuilder."""
548 # When testing it's possible to substitute the slave object, which is
549 # usually an XMLRPC client, with a stub object that removes the need
550 # to actually create a buildd slave in various states - which can be
551 # hard to create. We cannot use the property cache because it is
552 # cleared on transaction boundaries, hence the low tech approach.
553 if self._testing_slave is not None:
554 return self._testing_slave
555 return BuilderSlave.makeBuilderSlave(self.url, self.vm_host)546 return BuilderSlave.makeBuilderSlave(self.url, self.vm_host)
556547
557 def setSlaveForTesting(self, proxy):
558 """See IBuilder."""
559 self._testing_slave = proxy
560 del get_property_cache(self).slave
561
562 def startBuild(self, build_queue_item, logger):548 def startBuild(self, build_queue_item, logger):
563 """See IBuilder."""549 """See IBuilder."""
564 self.current_build_behavior = build_queue_item.required_build_behavior550 self.current_build_behavior = build_queue_item.required_build_behavior
@@ -845,7 +831,7 @@
845 self.failBuilder(error_message)831 self.failBuilder(error_message)
846 return defer.succeed(None)832 return defer.succeed(None)
847833
848 def findAndStartJob(self, buildd_slave=None):834 def findAndStartJob(self):
849 """See IBuilder."""835 """See IBuilder."""
850 # XXX This method should be removed in favour of two separately836 # XXX This method should be removed in favour of two separately
851 # called methods that find and dispatch the job. It will837 # called methods that find and dispatch the job. It will
@@ -857,9 +843,6 @@
857 logger.debug("No build candidates available for builder.")843 logger.debug("No build candidates available for builder.")
858 return defer.succeed(None)844 return defer.succeed(None)
859845
860 if buildd_slave is not None:
861 self.setSlaveForTesting(buildd_slave)
862
863 d = self._dispatchBuildCandidate(candidate)846 d = self._dispatchBuildCandidate(candidate)
864 return d.addCallback(lambda ignored: candidate)847 return d.addCallback(lambda ignored: candidate)
865848
866849
=== modified file 'lib/lp/buildmaster/tests/test_builder.py'
--- lib/lp/buildmaster/tests/test_builder.py 2012-01-11 08:52:22 +0000
+++ lib/lp/buildmaster/tests/test_builder.py 2012-02-10 05:25:23 +0000
@@ -205,7 +205,7 @@
205 processor = self.factory.makeProcessor(name="i386")205 processor = self.factory.makeProcessor(name="i386")
206 builder = self.factory.makeBuilder(206 builder = self.factory.makeBuilder(
207 processor=processor, virtualized=True, vm_host="bladh")207 processor=processor, virtualized=True, vm_host="bladh")
208 builder.setSlaveForTesting(OkSlave())208 self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(OkSlave()))
209 distroseries = self.factory.makeDistroSeries()209 distroseries = self.factory.makeDistroSeries()
210 das = self.factory.makeDistroArchSeries(210 das = self.factory.makeDistroArchSeries(
211 distroseries=distroseries, architecturetag="i386",211 distroseries=distroseries, architecturetag="i386",
@@ -370,7 +370,8 @@
370 builder, build = self._setupBinaryBuildAndBuilder()370 builder, build = self._setupBinaryBuildAndBuilder()
371 candidate = build.queueBuild()371 candidate = build.queueBuild()
372 building_slave = BuildingSlave()372 building_slave = BuildingSlave()
373 builder.setSlaveForTesting(building_slave)373 self.patch(
374 BuilderSlave, 'makeBuilderSlave', FakeMethod(building_slave))
374 candidate.markAsBuilding(builder)375 candidate.markAsBuilding(builder)
375376
376 # At this point we should see a valid behaviour on the builder:377 # At this point we should see a valid behaviour on the builder:
@@ -405,7 +406,7 @@
405 build_status=None, logtail=False, filemap=None,406 build_status=None, logtail=False, filemap=None,
406 dependencies=None):407 dependencies=None):
407 builder = self.factory.makeBuilder()408 builder = self.factory.makeBuilder()
408 builder.setSlaveForTesting(slave)409 self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(slave))
409 d = builder.slaveStatus()410 d = builder.slaveStatus()
410411
411 def got_status(status_dict):412 def got_status(status_dict):
@@ -458,13 +459,15 @@
458459
459 def test_isAvailable_with_slave_fault(self):460 def test_isAvailable_with_slave_fault(self):
460 builder = self.factory.makeBuilder()461 builder = self.factory.makeBuilder()
461 builder.setSlaveForTesting(BrokenSlave())462 self.patch(
463 BuilderSlave, 'makeBuilderSlave', FakeMethod(BrokenSlave()))
462 d = builder.isAvailable()464 d = builder.isAvailable()
463 return d.addCallback(self.assertFalse)465 return d.addCallback(self.assertFalse)
464466
465 def test_isAvailable_with_slave_idle(self):467 def test_isAvailable_with_slave_idle(self):
466 builder = self.factory.makeBuilder()468 builder = self.factory.makeBuilder()
467 builder.setSlaveForTesting(OkSlave())469 self.patch(
470 BuilderSlave, 'makeBuilderSlave', FakeMethod(OkSlave()))
468 d = builder.isAvailable()471 d = builder.isAvailable()
469 return d.addCallback(self.assertTrue)472 return d.addCallback(self.assertTrue)
470473
471474
=== modified file 'lib/lp/buildmaster/tests/test_manager.py'
--- lib/lp/buildmaster/tests/test_manager.py 2012-01-20 15:42:44 +0000
+++ lib/lp/buildmaster/tests/test_manager.py 2012-02-10 05:25:23 +0000
@@ -33,7 +33,10 @@
33 NewBuildersScanner,33 NewBuildersScanner,
34 SlaveScanner,34 SlaveScanner,
35 )35 )
36from lp.buildmaster.model.builder import Builder36from lp.buildmaster.model.builder import (
37 Builder,
38 BuilderSlave,
39 )
37from lp.buildmaster.tests.harness import BuilddManagerTestSetup40from lp.buildmaster.tests.harness import BuilddManagerTestSetup
38from lp.buildmaster.tests.mock_slaves import (41from lp.buildmaster.tests.mock_slaves import (
39 BrokenSlave,42 BrokenSlave,
@@ -134,7 +137,7 @@
134 # Reset sampledata builder.137 # Reset sampledata builder.
135 builder = getUtility(IBuilderSet)[BOB_THE_BUILDER_NAME]138 builder = getUtility(IBuilderSet)[BOB_THE_BUILDER_NAME]
136 self._resetBuilder(builder)139 self._resetBuilder(builder)
137 builder.setSlaveForTesting(OkSlave())140 self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(OkSlave()))
138 # Set this to 1 here so that _checkDispatch can make sure it's141 # Set this to 1 here so that _checkDispatch can make sure it's
139 # reset to 0 after a successful dispatch.142 # reset to 0 after a successful dispatch.
140 builder.failure_count = 1143 builder.failure_count = 1
@@ -246,7 +249,8 @@
246249
247 login('foo.bar@canonical.com')250 login('foo.bar@canonical.com')
248 builder.builderok = True251 builder.builderok = True
249 builder.setSlaveForTesting(BuildingSlave(build_id='8-1'))252 self.patch(BuilderSlave, 'makeBuilderSlave',
253 FakeMethod(BuildingSlave(build_id='8-1')))
250 transaction.commit()254 transaction.commit()
251 login(ANONYMOUS)255 login(ANONYMOUS)
252256
@@ -263,7 +267,7 @@
263 def test_scan_with_nothing_to_dispatch(self):267 def test_scan_with_nothing_to_dispatch(self):
264 factory = LaunchpadObjectFactory()268 factory = LaunchpadObjectFactory()
265 builder = factory.makeBuilder()269 builder = factory.makeBuilder()
266 builder.setSlaveForTesting(OkSlave())270 self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(OkSlave()))
267 scanner = self._getScanner(builder_name=builder.name)271 scanner = self._getScanner(builder_name=builder.name)
268 d = scanner.scan()272 d = scanner.scan()
269 return d.addCallback(self._checkNoDispatch, builder)273 return d.addCallback(self._checkNoDispatch, builder)
@@ -272,7 +276,7 @@
272 # Reset sampledata builder.276 # Reset sampledata builder.
273 builder = getUtility(IBuilderSet)[BOB_THE_BUILDER_NAME]277 builder = getUtility(IBuilderSet)[BOB_THE_BUILDER_NAME]
274 self._resetBuilder(builder)278 self._resetBuilder(builder)
275 builder.setSlaveForTesting(OkSlave())279 self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(OkSlave()))
276 builder.manual = True280 builder.manual = True
277 scanner = self._getScanner()281 scanner = self._getScanner()
278 d = scanner.scan()282 d = scanner.scan()
@@ -283,7 +287,7 @@
283 # Reset sampledata builder.287 # Reset sampledata builder.
284 builder = getUtility(IBuilderSet)[BOB_THE_BUILDER_NAME]288 builder = getUtility(IBuilderSet)[BOB_THE_BUILDER_NAME]
285 self._resetBuilder(builder)289 self._resetBuilder(builder)
286 builder.setSlaveForTesting(OkSlave())290 self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(OkSlave()))
287 builder.builderok = False291 builder.builderok = False
288 scanner = self._getScanner()292 scanner = self._getScanner()
289 d = scanner.scan()293 d = scanner.scan()
@@ -295,7 +299,8 @@
295 def test_scan_of_broken_slave(self):299 def test_scan_of_broken_slave(self):
296 builder = getUtility(IBuilderSet)[BOB_THE_BUILDER_NAME]300 builder = getUtility(IBuilderSet)[BOB_THE_BUILDER_NAME]
297 self._resetBuilder(builder)301 self._resetBuilder(builder)
298 builder.setSlaveForTesting(BrokenSlave())302 self.patch(
303 BuilderSlave, 'makeBuilderSlave', FakeMethod(BrokenSlave()))
299 builder.failure_count = 0304 builder.failure_count = 0
300 scanner = self._getScanner(builder_name=builder.name)305 scanner = self._getScanner(builder_name=builder.name)
301 d = scanner.scan()306 d = scanner.scan()
@@ -390,7 +395,7 @@
390 getUtility(IBuilderSet)[BOB_THE_BUILDER_NAME])395 getUtility(IBuilderSet)[BOB_THE_BUILDER_NAME])
391 self._resetBuilder(builder)396 self._resetBuilder(builder)
392 self.assertEqual(0, builder.failure_count)397 self.assertEqual(0, builder.failure_count)
393 builder.setSlaveForTesting(slave)398 self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(slave))
394 builder.vm_host = "fake_vm_host"399 builder.vm_host = "fake_vm_host"
395400
396 scanner = self._getScanner()401 scanner = self._getScanner()
@@ -434,7 +439,7 @@
434 # For now, we can only cancel virtual builds.439 # For now, we can only cancel virtual builds.
435 builder.virtualized = True440 builder.virtualized = True
436 builder.vm_host = "fake_vm_host"441 builder.vm_host = "fake_vm_host"
437 builder.setSlaveForTesting(slave)442 self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(slave))
438 transaction.commit()443 transaction.commit()
439 login(ANONYMOUS)444 login(ANONYMOUS)
440 buildqueue = builder.currentjob445 buildqueue = builder.currentjob
@@ -508,7 +513,7 @@
508 slave = OkSlave()513 slave = OkSlave()
509 slave.resume = fake_resume514 slave.resume = fake_resume
510 self.builder.vm_host = "fake_vm_host"515 self.builder.vm_host = "fake_vm_host"
511 self.builder.setSlaveForTesting(slave)516 self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(slave))
512 buildqueue = self.builder.currentjob517 buildqueue = self.builder.currentjob
513 build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(buildqueue)518 build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(buildqueue)
514 build.status = BuildStatus.CANCELLING519 build.status = BuildStatus.CANCELLING
515520
=== modified file 'lib/lp/buildmaster/tests/test_packagebuild.py'
--- lib/lp/buildmaster/tests/test_packagebuild.py 2012-01-11 08:52:22 +0000
+++ lib/lp/buildmaster/tests/test_packagebuild.py 2012-02-10 05:25:23 +0000
@@ -26,6 +26,7 @@
26 IPackageBuildSet,26 IPackageBuildSet,
27 IPackageBuildSource,27 IPackageBuildSource,
28 )28 )
29from lp.buildmaster.model.builder import BuilderSlave
29from lp.buildmaster.model.buildfarmjob import BuildFarmJob30from lp.buildmaster.model.buildfarmjob import BuildFarmJob
30from lp.buildmaster.model.packagebuild import PackageBuild31from lp.buildmaster.model.packagebuild import PackageBuild
31from lp.buildmaster.tests.mock_slaves import WaitingSlave32from lp.buildmaster.tests.mock_slaves import WaitingSlave
@@ -303,7 +304,7 @@
303 self.build.buildqueue_record.setDateStarted(UTC_NOW)304 self.build.buildqueue_record.setDateStarted(UTC_NOW)
304 self.slave = WaitingSlave('BuildStatus.OK')305 self.slave = WaitingSlave('BuildStatus.OK')
305 self.slave.valid_file_hashes.append('test_file_hash')306 self.slave.valid_file_hashes.append('test_file_hash')
306 builder.setSlaveForTesting(self.slave)307 self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(self.slave))
307308
308 # We overwrite the buildmaster root to use a temp directory.309 # We overwrite the buildmaster root to use a temp directory.
309 tempdir = tempfile.mkdtemp()310 tempdir = tempfile.mkdtemp()
310311
=== modified file 'lib/lp/code/model/tests/test_sourcepackagerecipebuild.py'
--- lib/lp/code/model/tests/test_sourcepackagerecipebuild.py 2012-01-11 08:52:22 +0000
+++ lib/lp/code/model/tests/test_sourcepackagerecipebuild.py 2012-02-10 05:25:23 +0000
@@ -21,6 +21,7 @@
21from lp.app.errors import NotFoundError21from lp.app.errors import NotFoundError
22from lp.buildmaster.enums import BuildStatus22from lp.buildmaster.enums import BuildStatus
23from lp.buildmaster.interfaces.buildqueue import IBuildQueue23from lp.buildmaster.interfaces.buildqueue import IBuildQueue
24from lp.buildmaster.model.builder import BuilderSlave
24from lp.buildmaster.model.buildfarmjob import BuildFarmJob25from lp.buildmaster.model.buildfarmjob import BuildFarmJob
25from lp.buildmaster.model.packagebuild import PackageBuild26from lp.buildmaster.model.packagebuild import PackageBuild
26from lp.buildmaster.tests.mock_slaves import WaitingSlave27from lp.buildmaster.tests.mock_slaves import WaitingSlave
@@ -608,7 +609,7 @@
608 result=True)609 result=True)
609 queue_record.builder = self.factory.makeBuilder()610 queue_record.builder = self.factory.makeBuilder()
610 slave = WaitingSlave('BuildStatus.OK')611 slave = WaitingSlave('BuildStatus.OK')
611 queue_record.builder.setSlaveForTesting(slave)612 self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(slave))
612 return build613 return build
613614
614 def assertDeferredNotifyCount(self, status, build, expected_count):615 def assertDeferredNotifyCount(self, status, build, expected_count):
615616
=== modified file 'lib/lp/soyuz/tests/test_binarypackagebuild.py'
--- lib/lp/soyuz/tests/test_binarypackagebuild.py 2012-01-11 08:52:22 +0000
+++ lib/lp/soyuz/tests/test_binarypackagebuild.py 2012-02-10 05:25:23 +0000
@@ -18,6 +18,7 @@
18from lp.buildmaster.interfaces.builder import IBuilderSet18from lp.buildmaster.interfaces.builder import IBuilderSet
19from lp.buildmaster.interfaces.buildqueue import IBuildQueue19from lp.buildmaster.interfaces.buildqueue import IBuildQueue
20from lp.buildmaster.interfaces.packagebuild import IPackageBuild20from lp.buildmaster.interfaces.packagebuild import IPackageBuild
21from lp.buildmaster.model.builder import BuilderSlave
21from lp.buildmaster.model.buildqueue import BuildQueue22from lp.buildmaster.model.buildqueue import BuildQueue
22from lp.buildmaster.tests.mock_slaves import WaitingSlave23from lp.buildmaster.tests.mock_slaves import WaitingSlave
23from lp.buildmaster.tests.test_packagebuild import (24from lp.buildmaster.tests.test_packagebuild import (
@@ -48,6 +49,7 @@
48 logout,49 logout,
49 TestCaseWithFactory,50 TestCaseWithFactory,
50 )51 )
52from lp.testing.fakemethod import FakeMethod
51from lp.testing.layers import (53from lp.testing.layers import (
52 DatabaseFunctionalLayer,54 DatabaseFunctionalLayer,
53 LaunchpadZopelessLayer,55 LaunchpadZopelessLayer,
@@ -522,7 +524,8 @@
522 self.build = gedit_src_hist.createMissingBuilds()[0]524 self.build = gedit_src_hist.createMissingBuilds()[0]
523525
524 self.builder = self.factory.makeBuilder()526 self.builder = self.factory.makeBuilder()
525 self.builder.setSlaveForTesting(WaitingSlave('BuildStatus.OK'))527 self.patch(BuilderSlave, 'makeBuilderSlave',
528 FakeMethod(WaitingSlave('BuildStatus.OK')))
526 self.build.buildqueue_record.markAsBuilding(self.builder)529 self.build.buildqueue_record.markAsBuilding(self.builder)
527530
528 def testDependencies(self):531 def testDependencies(self):
529532
=== modified file 'lib/lp/soyuz/tests/test_binarypackagebuildbehavior.py'
--- lib/lp/soyuz/tests/test_binarypackagebuildbehavior.py 2012-01-20 15:42:44 +0000
+++ lib/lp/soyuz/tests/test_binarypackagebuildbehavior.py 2012-02-10 05:25:23 +0000
@@ -18,6 +18,7 @@
18from zope.security.proxy import removeSecurityProxy18from zope.security.proxy import removeSecurityProxy
1919
20from lp.buildmaster.enums import BuildStatus20from lp.buildmaster.enums import BuildStatus
21from lp.buildmaster.model.builder import BuilderSlave
21from lp.buildmaster.tests.mock_slaves import (22from lp.buildmaster.tests.mock_slaves import (
22 AbortedSlave,23 AbortedSlave,
23 AbortingSlave,24 AbortingSlave,
@@ -40,6 +41,7 @@
40from lp.soyuz.enums import ArchivePurpose41from lp.soyuz.enums import ArchivePurpose
41from lp.testing import TestCaseWithFactory42from lp.testing import TestCaseWithFactory
42from lp.testing.dbuser import switch_dbuser43from lp.testing.dbuser import switch_dbuser
44from lp.testing.fakemethod import FakeMethod
43from lp.testing.layers import LaunchpadZopelessLayer45from lp.testing.layers import LaunchpadZopelessLayer
4446
4547
@@ -138,7 +140,7 @@
138 archive = self.factory.makeArchive(virtualized=False)140 archive = self.factory.makeArchive(virtualized=False)
139 slave = OkSlave()141 slave = OkSlave()
140 builder = self.factory.makeBuilder(virtualized=False)142 builder = self.factory.makeBuilder(virtualized=False)
141 builder.setSlaveForTesting(slave)143 self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(slave))
142 build = self.factory.makeBinaryPackageBuild(144 build = self.factory.makeBinaryPackageBuild(
143 builder=builder, archive=archive)145 builder=builder, archive=archive)
144 lf = self.factory.makeLibraryFileAlias()146 lf = self.factory.makeLibraryFileAlias()
@@ -158,7 +160,7 @@
158 slave = OkSlave()160 slave = OkSlave()
159 builder = self.factory.makeBuilder(161 builder = self.factory.makeBuilder(
160 virtualized=True, vm_host="foohost")162 virtualized=True, vm_host="foohost")
161 builder.setSlaveForTesting(slave)163 self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(slave))
162 build = self.factory.makeBinaryPackageBuild(164 build = self.factory.makeBinaryPackageBuild(
163 builder=builder, archive=archive)165 builder=builder, archive=archive)
164 lf = self.factory.makeLibraryFileAlias()166 lf = self.factory.makeLibraryFileAlias()
@@ -181,7 +183,7 @@
181 virtualized=False, purpose=ArchivePurpose.PARTNER)183 virtualized=False, purpose=ArchivePurpose.PARTNER)
182 slave = OkSlave()184 slave = OkSlave()
183 builder = self.factory.makeBuilder(virtualized=False)185 builder = self.factory.makeBuilder(virtualized=False)
184 builder.setSlaveForTesting(slave)186 self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(slave))
185 build = self.factory.makeBinaryPackageBuild(187 build = self.factory.makeBinaryPackageBuild(
186 builder=builder, archive=archive)188 builder=builder, archive=archive)
187 lf = self.factory.makeLibraryFileAlias()189 lf = self.factory.makeLibraryFileAlias()
@@ -309,7 +311,8 @@
309 # When a package fails to build, make sure the builder notes are311 # When a package fails to build, make sure the builder notes are
310 # stored and the build status is set as failed.312 # stored and the build status is set as failed.
311 waiting_slave = WaitingSlave('BuildStatus.PACKAGEFAIL')313 waiting_slave = WaitingSlave('BuildStatus.PACKAGEFAIL')
312 self.builder.setSlaveForTesting(waiting_slave)314 self.patch(BuilderSlave, 'makeBuilderSlave',
315 FakeMethod(waiting_slave))
313316
314 def got_update(ignored):317 def got_update(ignored):
315 self.assertBuildProperties(self.build)318 self.assertBuildProperties(self.build)
@@ -322,7 +325,8 @@
322 # Package build was left in dependency wait.325 # Package build was left in dependency wait.
323 DEPENDENCIES = 'baz (>= 1.0.1)'326 DEPENDENCIES = 'baz (>= 1.0.1)'
324 waiting_slave = WaitingSlave('BuildStatus.DEPFAIL', DEPENDENCIES)327 waiting_slave = WaitingSlave('BuildStatus.DEPFAIL', DEPENDENCIES)
325 self.builder.setSlaveForTesting(waiting_slave)328 self.patch(BuilderSlave, 'makeBuilderSlave',
329 FakeMethod(waiting_slave))
326330
327 def got_update(ignored):331 def got_update(ignored):
328 self.assertBuildProperties(self.build)332 self.assertBuildProperties(self.build)
@@ -335,7 +339,8 @@
335 def test_chrootfail_collection(self):339 def test_chrootfail_collection(self):
336 # There was a chroot problem for this build.340 # There was a chroot problem for this build.
337 waiting_slave = WaitingSlave('BuildStatus.CHROOTFAIL')341 waiting_slave = WaitingSlave('BuildStatus.CHROOTFAIL')
338 self.builder.setSlaveForTesting(waiting_slave)342 self.patch(BuilderSlave, 'makeBuilderSlave',
343 FakeMethod(waiting_slave))
339344
340 def got_update(ignored):345 def got_update(ignored):
341 self.assertBuildProperties(self.build)346 self.assertBuildProperties(self.build)
@@ -347,7 +352,8 @@
347 def test_builderfail_collection(self):352 def test_builderfail_collection(self):
348 # The builder failed after we dispatched the build.353 # The builder failed after we dispatched the build.
349 waiting_slave = WaitingSlave('BuildStatus.BUILDERFAIL')354 waiting_slave = WaitingSlave('BuildStatus.BUILDERFAIL')
350 self.builder.setSlaveForTesting(waiting_slave)355 self.patch(BuilderSlave, 'makeBuilderSlave',
356 FakeMethod(waiting_slave))
351357
352 def got_update(ignored):358 def got_update(ignored):
353 self.assertEqual(359 self.assertEqual(
@@ -363,7 +369,8 @@
363369
364 def test_building_collection(self):370 def test_building_collection(self):
365 # The builder is still building the package.371 # The builder is still building the package.
366 self.builder.setSlaveForTesting(BuildingSlave())372 self.patch(BuilderSlave, 'makeBuilderSlave',
373 FakeMethod(BuildingSlave()))
367374
368 def got_update(ignored):375 def got_update(ignored):
369 # The fake log is returned from the BuildingSlave() mock.376 # The fake log is returned from the BuildingSlave() mock.
@@ -374,7 +381,8 @@
374381
375 def test_aborted_collection(self):382 def test_aborted_collection(self):
376 # The builder aborted the job.383 # The builder aborted the job.
377 self.builder.setSlaveForTesting(AbortedSlave())384 self.patch(BuilderSlave, 'makeBuilderSlave',
385 FakeMethod(AbortedSlave()))
378386
379 def got_update(ignored):387 def got_update(ignored):
380 self.assertEqual(BuildStatus.NEEDSBUILD, self.build.status)388 self.assertEqual(BuildStatus.NEEDSBUILD, self.build.status)
@@ -384,7 +392,8 @@
384392
385 def test_aborting_collection(self):393 def test_aborting_collection(self):
386 # The builder is in the process of aborting.394 # The builder is in the process of aborting.
387 self.builder.setSlaveForTesting(AbortingSlave())395 self.patch(BuilderSlave, 'makeBuilderSlave',
396 FakeMethod(AbortingSlave()))
388397
389 def got_update(ignored):398 def got_update(ignored):
390 self.assertEqual(399 self.assertEqual(
@@ -398,7 +407,8 @@
398 # If we collected a build for a superseded/deleted source then407 # If we collected a build for a superseded/deleted source then
399 # the build should get marked superseded as the build results408 # the build should get marked superseded as the build results
400 # get discarded.409 # get discarded.
401 self.builder.setSlaveForTesting(WaitingSlave('BuildStatus.OK'))410 self.patch(BuilderSlave, 'makeBuilderSlave',
411 FakeMethod(WaitingSlave('BuildStatus.OK')))
402 spr = removeSecurityProxy(self.build.source_package_release)412 spr = removeSecurityProxy(self.build.source_package_release)
403 pub = self.build.current_source_publication413 pub = self.build.current_source_publication
404 pub.requestDeletion(spr.creator)414 pub.requestDeletion(spr.creator)
@@ -412,7 +422,8 @@
412422
413 def test_uploading_collection(self):423 def test_uploading_collection(self):
414 # After a successful build, the status should be UPLOADING.424 # After a successful build, the status should be UPLOADING.
415 self.builder.setSlaveForTesting(WaitingSlave('BuildStatus.OK'))425 self.patch(BuilderSlave, 'makeBuilderSlave',
426 FakeMethod(WaitingSlave('BuildStatus.OK')))
416427
417 def got_update(ignored):428 def got_update(ignored):
418 self.assertEqual(self.build.status, BuildStatus.UPLOADING)429 self.assertEqual(self.build.status, BuildStatus.UPLOADING)
@@ -425,7 +436,8 @@
425436
426 def test_givenback_collection(self):437 def test_givenback_collection(self):
427 waiting_slave = WaitingSlave('BuildStatus.GIVENBACK')438 waiting_slave = WaitingSlave('BuildStatus.GIVENBACK')
428 self.builder.setSlaveForTesting(waiting_slave)439 self.patch(BuilderSlave, 'makeBuilderSlave',
440 FakeMethod(waiting_slave))
429 score = self.candidate.lastscore441 score = self.candidate.lastscore
430442
431 def got_update(ignored):443 def got_update(ignored):
@@ -440,7 +452,8 @@
440 return d.addCallback(got_update)452 return d.addCallback(got_update)
441453
442 def test_log_file_collection(self):454 def test_log_file_collection(self):
443 self.builder.setSlaveForTesting(WaitingSlave('BuildStatus.OK'))455 self.patch(BuilderSlave, 'makeBuilderSlave',
456 FakeMethod(WaitingSlave('BuildStatus.OK')))
444 self.build.status = BuildStatus.FULLYBUILT457 self.build.status = BuildStatus.FULLYBUILT
445 old_tmps = sorted(os.listdir('/tmp'))458 old_tmps = sorted(os.listdir('/tmp'))
446459
@@ -488,7 +501,8 @@
488 def test_private_build_log_storage(self):501 def test_private_build_log_storage(self):
489 # Builds in private archives should have their log uploaded to502 # Builds in private archives should have their log uploaded to
490 # the restricted librarian.503 # the restricted librarian.
491 self.builder.setSlaveForTesting(WaitingSlave('BuildStatus.OK'))504 self.patch(BuilderSlave, 'makeBuilderSlave',
505 FakeMethod(WaitingSlave('BuildStatus.OK')))
492506
493 # Go behind Storm's back since the field validator on507 # Go behind Storm's back since the field validator on
494 # Archive.private prevents us from setting it to True with508 # Archive.private prevents us from setting it to True with
495509
=== modified file 'lib/lp/translations/stories/buildfarm/xx-build-summary.txt'
--- lib/lp/translations/stories/buildfarm/xx-build-summary.txt 2012-01-15 13:32:27 +0000
+++ lib/lp/translations/stories/buildfarm/xx-build-summary.txt 2012-02-10 05:25:23 +0000
@@ -9,12 +9,14 @@
99
10Create a builder working on a TranslationTemplatesBuild for a branch.10Create a builder working on a TranslationTemplatesBuild for a branch.
1111
12 >>> from testtools.monkey import patch
12 >>> from zope.component import getUtility13 >>> from zope.component import getUtility
13 >>> from lp.app.interfaces.launchpad import ILaunchpadCelebrities14 >>> from lp.app.interfaces.launchpad import ILaunchpadCelebrities
14 >>> from lp.services.librarian.interfaces import (15 >>> from lp.services.librarian.interfaces import (
15 ... ILibraryFileAliasSet)16 ... ILibraryFileAliasSet)
16 >>> from lp.app.enums import ServiceUsage17 >>> from lp.app.enums import ServiceUsage
17 >>> from lp.buildmaster.interfaces.buildqueue import IBuildQueueSet18 >>> from lp.buildmaster.interfaces.buildqueue import IBuildQueueSet
19 >>> from lp.buildmaster.model.builder import BuilderSlave
18 >>> from lp.testing.factory import (20 >>> from lp.testing.factory import (
19 ... remove_security_proxy_and_shout_at_engineer)21 ... remove_security_proxy_and_shout_at_engineer)
20 >>> from lp.testing.fakemethod import FakeMethod22 >>> from lp.testing.fakemethod import FakeMethod
@@ -51,7 +53,7 @@
51 ... fake_chroot)53 ... fake_chroot)
5254
53 >>> builder = factory.makeBuilder(vm_host=factory.getUniqueString())55 >>> builder = factory.makeBuilder(vm_host=factory.getUniqueString())
54 >>> builder.setSlaveForTesting(FakeSlave())56 >>> _ = patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(FakeSlave()))
55 >>> buildqueue.markAsBuilding(builder)57 >>> buildqueue.markAsBuilding(builder)
5658
57 >>> builder_page = canonical_url(builder)59 >>> builder_page = canonical_url(builder)
5860
=== modified file 'lib/lp/translations/tests/test_translationtemplatesbuildbehavior.py'
--- lib/lp/translations/tests/test_translationtemplatesbuildbehavior.py 2012-02-01 05:57:16 +0000
+++ lib/lp/translations/tests/test_translationtemplatesbuildbehavior.py 2012-02-10 05:25:23 +0000
@@ -20,6 +20,7 @@
20 IBuildFarmJobBehavior,20 IBuildFarmJobBehavior,
21 )21 )
22from lp.buildmaster.interfaces.buildqueue import IBuildQueueSet22from lp.buildmaster.interfaces.buildqueue import IBuildQueueSet
23from lp.buildmaster.model.builder import BuilderSlave
23from lp.buildmaster.tests.mock_slaves import (24from lp.buildmaster.tests.mock_slaves import (
24 SlaveTestHelpers,25 SlaveTestHelpers,
25 WaitingSlave,26 WaitingSlave,
@@ -79,7 +80,7 @@
79 behavior = IBuildFarmJobBehavior(specific_job)80 behavior = IBuildFarmJobBehavior(specific_job)
80 slave = WaitingSlave()81 slave = WaitingSlave()
81 behavior._builder = removeSecurityProxy(self.factory.makeBuilder())82 behavior._builder = removeSecurityProxy(self.factory.makeBuilder())
82 behavior._builder.setSlaveForTesting(slave)83 self.patch(BuilderSlave, 'makeBuilderSlave', FakeMethod(slave))
83 if use_fake_chroot:84 if use_fake_chroot:
84 lf = self.factory.makeLibraryFileAlias()85 lf = self.factory.makeLibraryFileAlias()
85 self.layer.txn.commit()86 self.layer.txn.commit()