當前位置: 首頁>>代碼示例>>Python>>正文


Python XROOTStorage.putFile方法代碼示例

本文整理匯總了Python中DIRAC.Resources.Storage.XROOTStorage.XROOTStorage.putFile方法的典型用法代碼示例。如果您正苦於以下問題:Python XROOTStorage.putFile方法的具體用法?Python XROOTStorage.putFile怎麽用?Python XROOTStorage.putFile使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在DIRAC.Resources.Storage.XROOTStorage.XROOTStorage的用法示例。


在下文中一共展示了XROOTStorage.putFile方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: test_putFile

# 需要導入模塊: from DIRAC.Resources.Storage.XROOTStorage import XROOTStorage [as 別名]
# 或者: from DIRAC.Resources.Storage.XROOTStorage.XROOTStorage import putFile [as 別名]
  def test_putFile(self):
    """ Test the output of putFile"""

    global mocked_xrootclient

    resource = XROOTStorage('storageName', self.parameterDict)

    statusMock = xrootStatusMock()
    statusMock.makeOk()

    mocked_xrootclient.copy.return_value = statusMock, None

    statusMkDirMock = xrootStatusMock()
    statusMkDirMock.makeOk()

    mocked_xrootclient.mkdir.return_value = statusMkDirMock, None

    statusRmMock = xrootStatusMock()
    statusRmMock.makeOk()

    mocked_xrootclient.rm.return_value = statusRmMock, None

    statusStatMock = xrootStatusMock()
    statusStatMock.makeOk()

    statInfoMock = xrootStatInfoMock()
    statInfoMock.makeFile()
    statInfoMock.size = 1

    updateStatMockReferences(statusStatMock, statInfoMock)

    # This test should be completely okay
    copymock = mock.Mock()
    copymock.run.return_value = (statusMock, None)
    mocked_xrootd.client.CopyProcess = mock.Mock(return_value=copymock)
    res = resource.putFile({"remoteA": "localA"})
    self.assertEqual(True, res['OK'])
    self.assertEqual({"remoteA": 1}, res['Value']['Successful'])
    self.assertEqual({}, res['Value']['Failed'])

    # Here the sizes should not match
    statInfoMock.size = 1000
    res = resource.putFile({"remoteA": "localA"})
    self.assertEqual(True, res['OK'])
    self.assertEqual({}, res['Value']['Successful'])
    self.assertEqual("remoteA", res['Value']['Failed'].keys()[0])
    statInfoMock.size = 1

    # Here we should not be able to get the file from storage
    statusMock.makeError()
    res = resource.putFile({"remoteA": "localA"})
    self.assertEqual(True, res['OK'])
    self.assertEqual({}, res['Value']['Successful'])
    self.assertEqual("remoteA", res['Value']['Failed'].keys()[0])

    # Fatal error in getting the file from storage
    statusMock.makeFatal()
    res = resource.putFile({"remoteA": "localA"})
    self.assertEqual(True, res['OK'])
    self.assertEqual({}, res['Value']['Successful'])
    self.assertEqual("remoteA", res['Value']['Failed'].keys()[0])

    # Bad input
    res = resource.putFile("remoteA")
    self.assertEqual(False, res['OK'])

    # Error, but not 3011 when checking existance of file, and then successful anyway
    statusMock.makeOk()

    with mock.patch.object(XROOTStorage, '_XROOTStorage__singleExists',
                           return_value=S_OK(S_ERROR("error checking existance "))):
      res = resource.putFile({"remoteA": "localA"})
      self.assertEqual(True, res['OK'])
      self.assertEqual({'remoteA': 1}, res['Value']['Successful'])
開發者ID:DIRACGrid,項目名稱:DIRAC,代碼行數:76,代碼來源:Test_XROOTStorage.py


注:本文中的DIRAC.Resources.Storage.XROOTStorage.XROOTStorage.putFile方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。