Пример #1
0
    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)
Пример #2
0
    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()
Пример #3
0
 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()
Пример #4
0
    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())
Пример #5
0
 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()
Пример #6
0
 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)