def test_getNextJobStatus_order(self): """Status should order by id.""" with EventRecorder(): packaging = self.factory.makePackagingLink() job = TranslationMergeJob.forPackaging(packaging) job.start() TranslationMergeJob.forPackaging(packaging) self.assertEqual(JobStatus.RUNNING, TranslationMergeJob.getNextJobStatus(packaging))
def test_getNextJobStatus(self): """Should find next packaging job.""" #suppress job creation. with EventRecorder(): packaging = self.factory.makePackagingLink() self.assertIs(None, TranslationMergeJob.getNextJobStatus(packaging)) TranslationMergeJob.forPackaging(packaging) self.assertEqual(JobStatus.WAITING, TranslationMergeJob.getNextJobStatus(packaging))
def test_getNextJobStatus(self): """Should find next packaging job.""" #suppress job creation. with EventRecorder(): packaging = self.factory.makePackagingLink() self.assertIs(None, TranslationMergeJob.getNextJobStatus(packaging)) TranslationMergeJob.forPackaging(packaging) self.assertEqual( JobStatus.WAITING, TranslationMergeJob.getNextJobStatus(packaging))
def test_getNextJobStatus_wrong_packaging(self): """Jobs on wrong packaging should be ignored.""" #suppress job creation. with EventRecorder(): packaging = self.factory.makePackagingLink() self.factory.makePackagingLink(productseries=packaging.productseries) self.assertIs(None, TranslationMergeJob.getNextJobStatus(packaging)) self.factory.makePackagingLink() self.factory.makePackagingLink(distroseries=packaging.distroseries) self.assertIs(None, TranslationMergeJob.getNextJobStatus(packaging)) TranslationMergeJob.create( sourcepackagename=packaging.sourcepackagename, distroseries=packaging.distroseries, productseries=self.factory.makeProductSeries()) self.assertIs(None, TranslationMergeJob.getNextJobStatus(packaging))
def make_translation_merge_job(factory, not_ubuntu=False): singular = factory.getUniqueString() upstream_pofile = factory.makePOFile(side=TranslationSide.UPSTREAM) upstream_potmsgset = factory.makePOTMsgSet(upstream_pofile.potemplate, singular) upstream = factory.makeCurrentTranslationMessage( pofile=upstream_pofile, potmsgset=upstream_potmsgset) if not_ubuntu: distroseries = factory.makeDistroSeries() else: distroseries = factory.makeUbuntuDistroSeries() package_potemplate = factory.makePOTemplate( distroseries=distroseries, name=upstream_pofile.potemplate.name) package_pofile = factory.makePOFile(potemplate=package_potemplate, language=upstream_pofile.language) package_potmsgset = factory.makePOTMsgSet(package_pofile.potemplate, singular) factory.makeCurrentTranslationMessage(pofile=package_pofile, potmsgset=package_potmsgset, translations=upstream.translations) productseries = upstream_pofile.potemplate.productseries distroseries = package_pofile.potemplate.distroseries sourcepackagename = package_pofile.potemplate.sourcepackagename return TranslationMergeJob.create(productseries=productseries, distroseries=distroseries, sourcepackagename=sourcepackagename)
def test_getNextJobStatus_wrong_type(self): """Only TranslationMergeJobs should result.""" #suppress job creation. with EventRecorder(): packaging = self.factory.makePackagingLink() TranslationSplitJob.forPackaging(packaging) self.assertIs(None, TranslationMergeJob.getNextJobStatus(packaging))
def make_translation_merge_job(factory, not_ubuntu=False): singular = factory.getUniqueString() upstream_pofile = factory.makePOFile(side=TranslationSide.UPSTREAM) upstream_potmsgset = factory.makePOTMsgSet( upstream_pofile.potemplate, singular) upstream = factory.makeCurrentTranslationMessage( pofile=upstream_pofile, potmsgset=upstream_potmsgset) if not_ubuntu: distroseries = factory.makeDistroSeries() else: distroseries = factory.makeUbuntuDistroSeries() package_potemplate = factory.makePOTemplate( distroseries=distroseries, name=upstream_pofile.potemplate.name) package_pofile = factory.makePOFile( potemplate=package_potemplate, language=upstream_pofile.language) package_potmsgset = factory.makePOTMsgSet( package_pofile.potemplate, singular) factory.makeCurrentTranslationMessage( pofile=package_pofile, potmsgset=package_potmsgset, translations=upstream.translations) productseries = upstream_pofile.potemplate.productseries distroseries = package_pofile.potemplate.distroseries sourcepackagename = package_pofile.potemplate.sourcepackagename return TranslationMergeJob.create( productseries=productseries, distroseries=distroseries, sourcepackagename=sourcepackagename)
def test_getNextJobStatus_wrong_type(self): """Only TranslationMergeJobs should result.""" #suppress job creation. with EventRecorder(): packaging = self.factory.makePackagingLink() TranslationSplitJob.forPackaging(packaging) self.assertIs( None, TranslationMergeJob.getNextJobStatus(packaging))
def test_getNextJobStatus_wrong_packaging(self): """Jobs on wrong packaging should be ignored.""" #suppress job creation. with EventRecorder(): packaging = self.factory.makePackagingLink() self.factory.makePackagingLink( productseries=packaging.productseries) self.assertIs(None, TranslationMergeJob.getNextJobStatus(packaging)) self.factory.makePackagingLink() self.factory.makePackagingLink( distroseries=packaging.distroseries) self.assertIs(None, TranslationMergeJob.getNextJobStatus(packaging)) TranslationMergeJob.create( sourcepackagename=packaging.sourcepackagename, distroseries=packaging.distroseries, productseries=self.factory.makeProductSeries()) self.assertIs(None, TranslationMergeJob.getNextJobStatus(packaging))
def test_getNextJobStatus_status(self): """Only RUNNING and WAITING jobs should influence status.""" #suppress job creation. with EventRecorder(): packaging = self.factory.makePackagingLink() job = TranslationMergeJob.forPackaging(packaging) job.start() self.assertEqual(JobStatus.RUNNING, TranslationMergeJob.getNextJobStatus(packaging)) job.fail() self.assertIs(None, TranslationMergeJob.getNextJobStatus(packaging)) job2 = TranslationMergeJob.forPackaging(packaging) job2.start() job2.complete() job3 = TranslationMergeJob.forPackaging(packaging) job3.suspend() self.assertIs(None, TranslationMergeJob.getNextJobStatus(packaging))
def is_merge_job_running(self): """Is a merge job running for this source package?""" if not self.is_packaging_configured: return False return TranslationMergeJob.getNextJobStatus( self.context.direct_packaging) is not None