def test_DLI_execute_NoLocal(dli, mockSE):
    """Data only at the remote SE."""
    dli = DownloadInputData({
        "InputData": [],
        "Configuration": {
            "LocalSEList": ["SE_Local", "SE_Tape"]
        },
        "InputDataDirectory":
        "CWD",
        "FileCatalog":
        S_OK({
            "Successful": {
                "/a/lfn/1.txt": {
                    "Size": 10,
                    "GUID": "aGUID",
                    "SE_Tape": "",
                }
            }
        }),
    })
    dli.availableSEs = ["SE_Local", "SE_Remote", "SE_Tape"]
    mockObjectSE = mockSE.return_value
    statDict = {"Read": True, "TapeSE": True, "DiskSE": False}
    mockObjectSE.getStatus.return_value = S_OK(statDict)
    mockObjectSE.status.return_value = statDict
    dli._downloadFromSE = MagicMock(return_value=S_ERROR("Failed to down"))
    dli._isCache = MagicMock(return_value=True)

    res = dli.execute(dataToResolve=["/a/lfn/1.txt"])
    assert res["OK"]
    assert res["Value"]["Failed"]
    assert "/a/lfn/1.txt" in res["Value"]["Failed"], res
    assert res["Value"]["Failed"][0] == "/a/lfn/1.txt", res
def test_DLI_execute_NoLocal(dli, mockSE):
    """Data only at the remote SE."""
    dli = DownloadInputData({
        'InputData': [],
        'Configuration': {
            'LocalSEList': ['SE_Local', 'SE_Tape']
        },
        'InputDataDirectory':
        'CWD',
        'FileCatalog':
        S_OK({
            'Successful': {
                '/a/lfn/1.txt': {
                    'Size': 10,
                    'GUID': 'aGUID',
                    'SE_Tape': '',
                }
            }
        })
    })
    dli.availableSEs = ['SE_Local', 'SE_Remote', 'SE_Tape']
    mockObjectSE = mockSE.return_value
    statDict = {'Read': True, 'TapeSE': True, 'DiskSE': False}
    mockObjectSE.getStatus.return_value = S_OK(statDict)
    mockObjectSE.status.return_value = statDict
    dli._downloadFromSE = MagicMock(return_value=S_ERROR('Failed to down'))
    dli._isCache = MagicMock(return_value=True)

    res = dli.execute(dataToResolve=['/a/lfn/1.txt'])
    assert res['OK']
    assert res['Value']['Failed']
    assert '/a/lfn/1.txt' in res['Value']['Failed'], res
    assert res['Value']['Failed'][0] == '/a/lfn/1.txt', res