예제 #1
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)

    # We created a Directory which contains 2 subdir and 1 file

    res = resource.listDirectory( "A" )
    self.assertEqual( True, res['OK'] )
    self.assertEqual( {}, res['Value']['Failed'] )
    SubDirs = res['Value']['Successful']["A"]["SubDirs"]
    SubFiles = res['Value']['Successful']["A"]["Files"]
    self.assertEqual( 2 , len( SubDirs ) )
    self.assertEqual( 1 , len( SubFiles ) )
    self.assertEqual( SubFiles["root://host/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( "A" )
    self.assertEqual( True, res['OK'] )
    self.assertEqual( {}, res['Value']['Successful'] )
    self.assertEqual( "A" , res['Value']['Failed'].keys()[0] )
예제 #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])