543
545
self.assertEqual(1, free_count)
548
class TestBuildCancellation(TestCaseWithFactory):
549
"""Test cases for cancelling builds."""
551
layer = ZopelessDatabaseLayer
554
super(TestBuildCancellation, self).setUp()
555
self.builder = self.factory.makeBuilder()
557
def _makeBuildQueue(self, job):
559
job=job, lastscore=9999,
560
job_type=BuildFarmJobType.PACKAGEBUILD,
561
estimated_duration=timedelta(seconds=69), virtualized=True)
563
def assertCancelled(self, build, buildqueue):
564
self.assertEqual(BuildStatus.CANCELLED, build.status)
565
self.assertIs(None, buildqueue.specific_job)
566
self.assertRaises(SQLObjectNotFound, BuildQueue.get, buildqueue.id)
568
def test_binarypackagebuild_cancel(self):
569
build = self.factory.makeBinaryPackageBuild()
570
buildpackagejob = build.makeJob()
571
bq = self._makeBuildQueue(buildpackagejob.job)
572
Store.of(build).add(bq)
573
bq.markAsBuilding(self.builder)
576
self.assertCancelled(buildpackagejob.build, bq)
578
def test_recipebuild_cancel(self):
579
bq = self.factory.makeSourcePackageRecipeBuildJob()
580
build = bq.specific_job.build
581
bq.markAsBuilding(self.builder)
584
self.assertCancelled(build, bq)
546
587
class TestMinTimeToNextBuilder(SingleArchBuildsBase):
547
588
"""Test estimated time-to-builder with builds targetting a single