Exemplo n.º 1
0
def test_checksum(tmppath):
    """Test checksum method."""
    fs = XRootDFS(mkurl(tmppath))

    # Local xrootd server does not support checksum operation
    pytest.raises(UnsupportedError, fs.xrd_checksum, "data/testa.txt")

    # Let's fake a success response
    fake_status = {
        "status": 0,
        "code": 0,
        "ok": True,
        "errno": 0,
        "error": False,
        "message": "[SUCCESS] ",
        "fatal": False,
        "shellcode": 0,
    }
    fs.xrd_client.query = Mock(return_value=(XRootDStatus(fake_status), "adler32 3836a69a\x00"))
    algo, val = fs.xrd_checksum("data/testa.txt")
    assert algo == "adler32" and val == "3836a69a"

    # Fake a bad response (e.g. on directory)
    fake_status = {
        "status": 1,
        "code": 400,
        "ok": False,
        "errno": 3011,
        "error": True,
        "message": "[ERROR] Server responded with an error: [3011] no such " "file or directory\n",
        "fatal": False,
        "shellcode": 54,
    }
    fs.xrd_client.query = Mock(return_value=(XRootDStatus(fake_status), None))
    pytest.raises(FSError, fs.xrd_checksum, "data/")
Exemplo n.º 2
0
def test_checksum(tmppath):
    """Test checksum method."""
    fs = XRootDFS(mkurl(tmppath))

    # Local xrootd server does not support checksum operation
    pytest.raises(UnsupportedError, fs.xrd_checksum, "data/testa.txt")

    # Let's fake a success response
    fake_status = {
        "status": 0,
        "code": 0,
        "ok": True,
        "errno": 0,
        "error": False,
        "message": '[SUCCESS] ',
        "fatal": False,
        "shellcode": 0
    }
    fs.xrd_client.query = Mock(return_value=(XRootDStatus(fake_status),
                                             'adler32 3836a69a\x00'))
    algo, val = fs.xrd_checksum("data/testa.txt")
    assert algo == 'adler32' and val == "3836a69a"

    # Fake a bad response (e.g. on directory)
    fake_status = {
        "status": 1,
        "code": 400,
        "ok": False,
        "errno": 3011,
        "error": True,
        "message": '[ERROR] Server responded with an error: [3011] no such '
        'file or directory\n',
        "fatal": False,
        "shellcode": 54
    }
    fs.xrd_client.query = Mock(return_value=(XRootDStatus(fake_status), None))
    pytest.raises(FSError, fs.xrd_checksum, "data/")