示例#1
0
  def test_constructURLFromLFN(self):

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

    resource.se = MagicMock()
    voName = "voName"
    resource.se.vo = voName
    testLFN = "/%s/path/to/filename" % voName

    # with spaceToken
    res = resource.constructURLFromLFN(testLFN)
    self.assertTrue(res['OK'])
    self.assertEqual("protocol://host//path%s?svcClass=%s" % (testLFN, self.parameterDict['SpaceToken']), res['Value'])

    # no spaceToken
    resource.protocolParameters['SpaceToken'] = ""
    res = resource.constructURLFromLFN(testLFN)
    self.assertTrue(res['OK'])
    self.assertEqual("protocol://host//path%s" % (testLFN, ), res['Value'])
示例#2
0
  def test_listDirectory(self):
    """ Try to list the directory"""
    global mocked_xrootclient

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

    statusMock = xrootStatusMock()
    statusMock.makeOk()

    statInfoMock = xrootStatInfoMock()
    statInfoMock.makeDir()

    updateStatMockReferences(statusMock, statInfoMock)

    statDir1 = xrootStatInfoMock()
    statDir1.makeDir()
    statDir1.size = 1
    dir1 = xrootListEntryMock("dir1", "host", statDir1)

    statDir2 = xrootStatInfoMock()
    statDir2.makeDir()
    statDir2.size = 2
    dir2 = xrootListEntryMock("dir2", "host", statDir2)

    statFile1 = xrootStatInfoMock()
    statFile1.makeFile()
    statFile1.size = 4
    file1 = xrootListEntryMock("file1", "host", statFile1)

    directoryListMock = xrootDirectoryListMock("parent", [dir1, dir2, file1])

    parentdir = xrootStatInfoMock()
    parentdir.makeDir()

    setMockDirectory(directoryListMock)

    resource.se = MagicMock()
    voName = "A"
    resource.se.vo = voName
    # We created a Directory which contains 2 subdir and 1 file

    aUrl = resource.constructURLFromLFN("/A")['Value']
    res = resource.listDirectory(aUrl)
    self.assertEqual(True, res['OK'])
    self.assertEqual({}, res['Value']['Failed'])
    SubDirs = res['Value']['Successful'][aUrl]["SubDirs"]
    SubFiles = res['Value']['Successful'][aUrl]["Files"]
    self.assertEqual(2, len(SubDirs))
    self.assertEqual(1, len(SubFiles))
    self.assertEqual(SubFiles["/A/file1"]["Size"], 4)

    # Cleanup old side effect
    mocked_xrootclient.stat.side_effect = None

    # Let's try on a File. It should fail
    statInfoMock.makeFile()
    updateStatMockReferences(infoval=statInfoMock)

    res = resource.listDirectory(aUrl)
    self.assertEqual(True, res['OK'])
    self.assertEqual({}, res['Value']['Successful'])
    self.assertEqual(aUrl, res['Value']['Failed'].keys()[0])