def workspace_handler(): s3_workspace_handler = S3WorkspaceHandler(mock.MagicMock(), logger_=mock.MagicMock()) s3_workspace_handler._upload = mock.MagicMock() s3_workspace_handler._get_upload_data = mock.MagicMock() s3_workspace_handler._get_upload_data.return_value = mock_upload_data return s3_workspace_handler
def test_multipart_upload_raises_exception(self, mock_post): workspace_handler = S3WorkspaceHandler(mock.MagicMock(), mock.MagicMock()) workspace_handler._get_files_dict = mock.MagicMock() mock_response = mock.MagicMock() mock_response.ok = False mock_post.return_value = mock_response with pytest.raises(exceptions.S3UploadFailedError): workspace_handler._upload('foo', {'url': 'bar', 'fields': []})
def test_multipart_upload_ok(self, mock_post): workspace_handler = S3WorkspaceHandler(mock.MagicMock(), mock.MagicMock()) workspace_handler._get_files_dict = mock.MagicMock() mock_response = mock.MagicMock() mock_response.ok = True mock_post.return_value = mock_response workspace_handler._upload('foo', {'url': 'bar', 'fields': []})
def test_return_json_with_presigned_url_response(self): mock_response = mock.MagicMock() mock_response.json.return_value = mock_upload_response workspace_handler = S3WorkspaceHandler(mock.MagicMock(), mock.MagicMock()) workspace_handler.experiments_api.get.return_value = mock_response upload_data = workspace_handler._get_upload_data('foo', 'bar') assert upload_data == mock_upload_data
def test_raise_exception_on_40x_presigned_url_response( self, code, exception): mock_response = mock.MagicMock() mock_response.status_code = code workspace_handler = S3WorkspaceHandler(mock.MagicMock(), mock.MagicMock()) workspace_handler.experiments_api.get.return_value = mock_response with pytest.raises(exception): workspace_handler._get_upload_data('foo', 'bar')
def test_raise_exception_when_more_than_one_workspace_provided( self, params, workspace_handler): workspace_handler = S3WorkspaceHandler(mock.MagicMock, mock.MagicMock) with pytest.raises(click.UsageError): workspace_handler.handle(params)
def __init__(self, workspace_handler=None, **kwargs): super(ExperimentCommand, self).__init__(**kwargs) self._workspace_handler = workspace_handler or S3WorkspaceHandler( experiments_api=self.api, logger_=self.logger)