def test_checkexperiment_with_review_and_no_kinto_pending_pushes_experiment( self, ): experiment = NimbusExperimentFactory.create_with_status( NimbusExperiment.Status.REVIEW) self.assertEqual(experiment.changes.count(), 2) self.setup_kinto_no_pending_review() tasks.nimbus_check_kinto_push_queue() self.mock_push_task.assert_called_with(experiment.id)
def test_check_experiment_with_no_review_status_pushes_nothing(self): for status in [ NimbusExperiment.Status.DRAFT, NimbusExperiment.Status.ACCEPTED, NimbusExperiment.Status.LIVE, NimbusExperiment.Status.COMPLETE, ]: NimbusExperimentFactory.create(status=status) self.setup_kinto_no_pending_review() tasks.nimbus_check_kinto_push_queue() self.mock_push_task.assert_not_called()
def test_check_with_empty_queue_pushes_nothing(self): self.setup_kinto_no_pending_review() tasks.nimbus_check_kinto_push_queue() self.mock_push_task.assert_not_called()
def test_check_with_reject_review(self): experiment = NimbusExperimentFactory.create_with_status( NimbusExperiment.Status.ACCEPTED, application=NimbusExperiment.Application.DESKTOP, ) self.mock_kinto_client.get_collection.side_effect = [ # Desktop responses { "data": { "status": KINTO_REJECTED_STATUS, "last_reviewer_comment": "it's no good", } }, { "data": { "status": "anything" } }, # Fenix responses { "data": { "status": "anything" } }, { "data": { "status": "anything" } }, ] self.mock_kinto_client.get_records.side_effect = [ # Desktop responses [{ "id": "another-experiment" }], [ { "id": "another-experiment" }, { "id": experiment.slug }, ], # Fenix responses [], [], ] tasks.nimbus_check_kinto_push_queue() self.mock_kinto_client.patch_collection.assert_called_with( id=settings.KINTO_COLLECTION_NIMBUS_DESKTOP, bucket=settings.KINTO_BUCKET, data={"status": KINTO_ROLLBACK_STATUS}, ) self.assertTrue( experiment.changes.filter( changed_by__email=settings.KINTO_DEFAULT_CHANGELOG_USER, old_status=NimbusExperiment.Status.ACCEPTED, new_status=NimbusExperiment.Status.DRAFT, ).exists())
def test_check_experiment_with_review_and_kinto_pending_pushes_nothing( self): NimbusExperimentFactory.create(status=NimbusExperiment.Status.REVIEW, ) self.setup_kinto_pending_review() tasks.nimbus_check_kinto_push_queue() self.mock_push_task.assert_not_called()
def test_dispatches_check_push_queue(self): tasks.nimbus_check_kinto_push_queue() for collection in NimbusExperiment.KINTO_COLLECTION_APPLICATIONS.keys( ): self.mock_dispatchee_task.assert_any_call(collection)