def test_10_minute_lease(self): self.useBzrBranches(direct_database=True) bmp = create_example_merge(self)[0] job = UpdatePreviewDiffJob.create(bmp) job.acquireLease() expiry_delta = job.lease_expires - datetime.now(pytz.UTC) self.assertTrue(500 <= expiry_delta.seconds, expiry_delta)
def make_runnable_incremental_diff_job(test_case): test_case.useBzrBranches(direct_database=True) bmp, source_rev_id, target_rev_id = create_example_merge(test_case) repository = bmp.source_branch.getBzrBranch().repository parent_id = repository.get_revision(source_rev_id).parent_ids[0] test_case.factory.makeRevision(rev_id=source_rev_id) test_case.factory.makeRevision(rev_id=parent_id) return GenerateIncrementalDiffJob.create(bmp, parent_id, source_rev_id)
def test_10_minute_lease(self): """Newly-created jobs have a ten-minute lease.""" self.useBzrBranches(direct_database=True) bmp = create_example_merge(self)[0] job = GenerateIncrementalDiffJob.create(bmp, 'old', 'new') with dbuser("merge-proposal-jobs"): job.acquireLease() expiry_delta = job.lease_expires - datetime.now(pytz.UTC) self.assertTrue(500 <= expiry_delta.seconds, expiry_delta)
def test_run(self): self.useBzrBranches(direct_database=True) bmp = create_example_merge(self)[0] job = UpdatePreviewDiffJob.create(bmp) self.factory.makeRevisionsForBranch(bmp.source_branch, count=1) bmp.source_branch.next_mirror_time = None with dbuser("merge-proposal-jobs"): JobRunner([job]).runAll() self.checkExampleMerge(bmp.preview_diff.text)
def test_UpdatePreviewDiffJob(self): """UpdatePreviewDiffJob runs under Celery.""" self.useBzrBranches(direct_database=True) bmp = create_example_merge(self)[0] self.factory.makeRevisionsForBranch(bmp.source_branch, count=1) self.useFixture(FeatureFixture( {'jobs.celery.enabled_classes': 'UpdatePreviewDiffJob'})) with block_on_job(): UpdatePreviewDiffJob.create(bmp) transaction.commit() self.assertIsNot(None, bmp.preview_diff)
def test_run_object_events(self): # While the job runs a single IObjectModifiedEvent is issued when the # preview diff has been calculated. self.useBzrBranches(direct_database=True) bmp = create_example_merge(self)[0] job = UpdatePreviewDiffJob.create(bmp) self.factory.makeRevisionsForBranch(bmp.source_branch, count=1) bmp.source_branch.next_mirror_time = None with dbuser("merge-proposal-jobs"): with EventRecorder() as event_recorder: JobRunner([job]).runAll() bmp_object_events = [ event for event in event_recorder.events if (IObjectModifiedEvent.providedBy(event) and event.object == bmp)] self.assertEqual( 1, len(bmp_object_events), "Expected one event, got: %r" % bmp_object_events) self.assertEqual( ["preview_diff"], bmp_object_events[0].edited_fields)