예제 #1
0
def test_get_task_from_instance(mock_client):
    mock_client.get_paasta_api_client.return_value = None
    with raises(utils.PaastaTaskNotFound):
        utils.get_task_from_instance('cluster1', 'my-service', 'main')
    mock_client.get_paasta_api_client.assert_called_with(cluster='cluster1')
    mock_api = mock.Mock()
    mock_client.get_paasta_api_client.return_value = mock_api
    mock_task_1 = mock.Mock()
    mock_task_2 = mock.Mock()
    mock_tasks = [mock_task_1, mock_task_2]
    mock_result = mock.Mock(return_value=mock_tasks)
    mock_task_result = mock.Mock(return_value=mock_task_2)
    mock_api.service.tasks_instance.return_value = mock.Mock(result=mock_result)
    mock_api.service.task_instance.return_value = mock.Mock(result=mock_task_result)
    ret = utils.get_task_from_instance('cluster1', 'my-service', 'main', task_id='123')
    assert ret == mock_task_2
    mock_api.service.task_instance.assert_called_with(
        service='my-service',
        instance='main',
        verbose=True,
        task_id='123',
    )

    ret = utils.get_task_from_instance('cluster1', 'my-service', 'main')
    assert ret == mock_task_1
    mock_api.service.tasks_instance.assert_called_with(
        service='my-service',
        instance='main',
        verbose=True,
        slave_hostname=None,
    )

    mock_result = mock.Mock(return_value=[])
    mock_api.service.tasks_instance.return_value = mock.Mock(result=mock_result)
    with raises(utils.PaastaTaskNotFound):
        ret = utils.get_task_from_instance(
            'cluster1', 'my-service', 'main',
            slave_hostname='test',
        )

    mock_api.service.tasks_instance.side_effect = HTTPError(response=mock.Mock(status_code=500))
    with raises(utils.PaastaTaskNotFound):
        ret = utils.get_task_from_instance(
            'cluster1', 'my-service', 'main',
            slave_hostname='test',
        )
    mock_api.service.tasks_instance.assert_called_with(
        service='my-service',
        instance='main',
        verbose=True,
        slave_hostname='test',
    )

    mock_api.service.tasks_instance.side_effect = HTTPNotFound(response=mock.Mock(status_code=404))
    with raises(utils.PaastaTaskNotFound):
        ret = utils.get_task_from_instance(
            'cluster1', 'my-service', 'main',
            slave_hostname='test',
        )
예제 #2
0
 def get_logs(self, job_id):
     """Get logs of a job."""
     response, http_response = self._client.jobs.get_logs(job_id=job_id).result()
     if http_response.status_code == 404:
         raise HTTPNotFound(
             "The given job ID was not found. Error: {}".format(http_response.data)
         )
     return http_response.text
예제 #3
0
 def check_status(self, job_id):
     """Check status of a job."""
     response, http_response = self._client.jobs.get_job(job_id=job_id).\
         result()
     if http_response.status_code == 404:
         raise HTTPNotFound(
             'The given job ID was not found. Error: {}'.format(
                 http_response.data))
     return response
예제 #4
0
    def test_delete_project_not_exists(self, swagger_client_factory):
        swagger_client = self._get_swagger_client_mock(swagger_client_factory)

        # when:
        swagger_client.api.deleteProject.side_effect = HTTPNotFound(
            response=MagicMock()
        )

        # then:
        with self.assertRaises(ProjectNotFound):
            delete_project(name="org/proj", api_token=API_TOKEN)
예제 #5
0
    def test_workspace_members_not_exists(self, swagger_client_factory):
        swagger_client = self._get_swagger_client_mock(swagger_client_factory)

        # when:
        swagger_client.api.listOrganizationMembers.side_effect = HTTPNotFound(
            response=MagicMock()
        )

        # then:
        with self.assertRaises(WorkspaceNotFound):
            get_workspace_member_list(name="org2", api_token=API_TOKEN)
예제 #6
0
    def test_remove_project_member_project_not_found(self, swagger_client_factory):
        swagger_client = self._get_swagger_client_mock(swagger_client_factory)

        # when:
        swagger_client.api.deleteProjectMember.side_effect = HTTPNotFound(
            response=MagicMock()
        )

        # then:
        with self.assertRaises(ProjectNotFound):
            remove_project_member(
                name="org/proj", username="******", api_token=API_TOKEN
            )
예제 #7
0
    def test_delete_order_not_found(self, mock_bitmex):
        mock_result = mock.MagicMock()
        mock_result.Order.Order_cancel.return_value.\
            result.side_effect = HTTPNotFound(mock.MagicMock())
        mock_bitmex.return_value = mock_result

        url = _add_query_parameters_to_url(
            reverse("order-detail", kwargs={'order_id': 'some order_id'}),
            {'account': self.account_name},
        )
        response = self.client.delete(url, follow=True)

        self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
        self.assertIn('error', response.data)
예제 #8
0
    def test_create_order_not_found(self, mock_bitmex):
        mock_result = mock.MagicMock()
        mock_result.Order.Order_new.return_value. \
            result.side_effect = HTTPNotFound(mock.MagicMock())
        mock_bitmex.return_value = mock_result

        url = _add_query_parameters_to_url(
            reverse("orders"),
            {'account': self.account_name},
        )
        response = self.client.post(url, data=self.base_post_data, follow=True)

        self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
        self.assertIn('error', response.data)
예제 #9
0
    def test_track_to_new_artifact(
        self, track_to_new_artifact_mock, swagger_client_factory
    ):
        # given
        swagger_client = self._get_swagger_client_mock(swagger_client_factory)
        backend = HostedNeptuneBackend(credentials)
        container_id = str(uuid.uuid4())
        project_id = str(uuid.uuid4())

        response_error = MagicMock()
        response_error.errorDescription = "error1"
        swagger_client.api.executeOperations.return_value.response.return_value.result = [
            response_error
        ]
        swagger_client.api.getArtifactAttribute.side_effect = HTTPNotFound(
            response=MagicMock()
        )

        for container_type in self.container_types:
            with self.subTest(msg=f"For type {container_type.value}"):
                track_to_new_artifact_mock.reset_mock()
                swagger_client_factory.reset_mock()

                # when
                backend.execute_operations(
                    container_id=container_id,
                    container_type=container_type,
                    operations=[
                        TrackFilesToArtifact(
                            path=["sub", "one"],
                            project_id=project_id,
                            entries=[("/path/to/file", "/path/to")],
                        ),
                        TrackFilesToArtifact(
                            path=["sub", "two"],
                            project_id=project_id,
                            entries=[
                                ("/path/to/file1", None),
                                ("/path/to/file2", None),
                            ],
                        ),
                        TrackFilesToArtifact(
                            path=["sub", "three"],
                            project_id=project_id,
                            entries=[("/path/to/file1", None)],
                        ),
                        TrackFilesToArtifact(
                            path=["sub", "three"],
                            project_id=project_id,
                            entries=[("/path/to/file2", None)],
                        ),
                    ],
                )

                # then
                track_to_new_artifact_mock.assert_has_calls(
                    [
                        call(
                            swagger_client=swagger_client,
                            project_id=project_id,
                            path=["sub", "one"],
                            parent_identifier=str(container_id),
                            entries=[("/path/to/file", "/path/to")],
                            default_request_params=DEFAULT_REQUEST_KWARGS,
                        ),
                        call(
                            swagger_client=swagger_client,
                            project_id=project_id,
                            path=["sub", "two"],
                            parent_identifier=str(container_id),
                            entries=[
                                ("/path/to/file1", None),
                                ("/path/to/file2", None),
                            ],
                            default_request_params=DEFAULT_REQUEST_KWARGS,
                        ),
                        call(
                            swagger_client=swagger_client,
                            project_id=project_id,
                            path=["sub", "three"],
                            parent_identifier=str(container_id),
                            entries=[
                                ("/path/to/file1", None),
                                ("/path/to/file2", None),
                            ],
                            default_request_params=DEFAULT_REQUEST_KWARGS,
                        ),
                    ],
                    any_order=True,
                )