예제 #1
0
def test_mount_nfs_failure(mocker):
    _mock_popen(mocker, returncode=1)

    with pytest.raises(SystemExit) as ex:
        mount_efs.mount_nfs(DNS_NAME, '/', '/mnt', DEFAULT_OPTIONS)

    assert 0 != ex.value.code
예제 #2
0
def test_mount_nfs_failure(mocker):
    _mock_popen(mocker, returncode=1)
    optimize_readahead_window_mock = mocker.patch(
        'mount_efs.optimize_readahead_window')

    with pytest.raises(SystemExit) as ex:
        mount_efs.mount_nfs(CONFIG, DNS_NAME, '/', '/mnt', DEFAULT_OPTIONS)

    assert 0 != ex.value.code

    utils.assert_not_called(optimize_readahead_window_mock)
예제 #3
0
def test_mount_nfs(mocker):
    mock = _mock_popen(mocker)

    mount_efs.mount_nfs(DNS_NAME, '/', '/mnt', DEFAULT_OPTIONS)

    args, _ = mock.call_args
    args = args[0]

    assert '/sbin/mount.nfs4' == args[NFS_BIN_ARG_IDX]
    assert DNS_NAME in args[NFS_MOUNT_PATH_IDX]
    assert '/mnt' == args[NFS_MOUNT_POINT_IDX]
예제 #4
0
def test_mount_nfs_macos(mocker):
    mock = _mock_popen(mocker)
    mocker.patch('mount_efs.check_if_platform_is_mac', return_value=True)
    DEFAULT_OPTIONS['nfsvers'] = 4.0
    mount_efs.mount_nfs(DNS_NAME, '/', '/mnt', DEFAULT_OPTIONS)

    args, _ = mock.call_args
    args = args[0]

    assert '/sbin/mount_nfs' == args[NFS_BIN_ARG_IDX]
    assert DNS_NAME in args[-2]
    assert '/mnt' == args[-1]
예제 #5
0
def test_mount_nfs_tls(mocker):
    mock = _mock_popen(mocker)

    options = dict(DEFAULT_OPTIONS)
    options['tls'] = None

    mount_efs.mount_nfs(DNS_NAME, '/', '/mnt', options)

    args, _ = mock.call_args
    args = args[0]

    assert DNS_NAME not in args[NFS_MOUNT_PATH_IDX]
    assert '127.0.0.1' in args[NFS_MOUNT_PATH_IDX]
예제 #6
0
def test_mount_nfs_tls_macos(mocker):
    mock = _mock_popen(mocker)
    mocker.patch('mount_efs.check_if_platform_is_mac', return_value=True)
    DEFAULT_OPTIONS['nfsvers'] = 4.0
    options = dict(DEFAULT_OPTIONS)
    options['tls'] = None

    mount_efs.mount_nfs(DNS_NAME, '/', '/mnt', options)

    args, _ = mock.call_args
    args = args[0]

    assert DNS_NAME not in args[NFS_MOUNT_PATH_IDX_MACOS]
    assert '127.0.0.1' in args[NFS_MOUNT_PATH_IDX_MACOS]
예제 #7
0
def test_mount_nfs(mocker):
    mock = _mock_popen(mocker)
    optimize_readahead_window_mock = mocker.patch(
        'mount_efs.optimize_readahead_window')

    mount_efs.mount_nfs(CONFIG, DNS_NAME, '/', '/mnt', DEFAULT_OPTIONS)

    args, _ = mock.call_args
    args = args[0]

    assert '/sbin/mount.nfs4' == args[NFS_BIN_ARG_IDX]
    assert DNS_NAME in args[NFS_MOUNT_PATH_IDX]
    assert '/mnt' == args[NFS_MOUNT_POINT_IDX]

    utils.assert_called_once(optimize_readahead_window_mock)
예제 #8
0
def test_mount_nfs_macos(mocker):
    mock = _mock_popen(mocker)
    mocker.patch('mount_efs.check_if_platform_is_mac', return_value=True)
    optimize_readahead_window_mock = mocker.patch(
        'mount_efs.optimize_readahead_window')
    DEFAULT_OPTIONS['nfsvers'] = 4.0
    mount_efs.mount_nfs(CONFIG, DNS_NAME, '/', '/mnt', DEFAULT_OPTIONS)

    args, _ = mock.call_args
    args = args[0]

    assert '/sbin/mount_nfs' == args[NFS_BIN_ARG_IDX]
    assert DNS_NAME in args[-2]
    assert '/mnt' == args[-1]

    utils.assert_called_once(optimize_readahead_window_mock)
예제 #9
0
def test_mount_nfs_tls(mocker):
    mock = _mock_popen(mocker)
    optimize_readahead_window_mock = mocker.patch(
        'mount_efs.optimize_readahead_window')

    options = dict(DEFAULT_OPTIONS)
    options['tls'] = None

    mount_efs.mount_nfs(CONFIG, DNS_NAME, '/', '/mnt', options)

    args, _ = mock.call_args
    args = args[0]

    assert DNS_NAME not in args[NFS_MOUNT_PATH_IDX]
    assert '127.0.0.1' in args[NFS_MOUNT_PATH_IDX]

    utils.assert_called_once(optimize_readahead_window_mock)
예제 #10
0
def test_mount_nfs_tls_netns(mocker):
    mock = _mock_popen(mocker)

    options = dict(DEFAULT_OPTIONS)
    options['tls'] = None
    options['netns'] = NETNS

    mount_efs.mount_nfs(DNS_NAME, '/', '/mnt', options)

    args, _ = mock.call_args
    args = args[0]

    assert 'nsenter' == args[NETNS_NSENTER_ARG_IDX]
    assert '--net=' + NETNS == args[NETNS_PATH_ARG_IDX]
    assert '/sbin/mount.nfs4' == args[NFS_BIN_ARG_IDX + NETNS_NFS_OFFSET]
    assert DNS_NAME not in args[NFS_MOUNT_PATH_IDX + NETNS_NFS_OFFSET]
    assert '127.0.0.1' in args[NFS_MOUNT_PATH_IDX + NETNS_NFS_OFFSET]
    assert '/mnt' in args[NFS_MOUNT_POINT_IDX + NETNS_NFS_OFFSET]
예제 #11
0
def test_mount_nfs_tls_macos(mocker):
    mock = _mock_popen(mocker)
    mocker.patch("mount_efs.check_if_platform_is_mac", return_value=True)
    optimize_readahead_window_mock = mocker.patch(
        "mount_efs.optimize_readahead_window")
    DEFAULT_OPTIONS["nfsvers"] = 4.0
    options = dict(DEFAULT_OPTIONS)
    options["tls"] = None

    mount_efs.mount_nfs(CONFIG, DNS_NAME, "/", "/mnt", options)

    args, _ = mock.call_args
    args = args[0]

    assert DNS_NAME not in args[NFS_MOUNT_PATH_IDX_MACOS]
    assert "127.0.0.1" in args[NFS_MOUNT_PATH_IDX_MACOS]

    utils.assert_called_once(optimize_readahead_window_mock)
예제 #12
0
def test_mount_nfs_tls_netns(mocker):
    mock = _mock_popen(mocker)
    optimize_readahead_window_mock = mocker.patch(
        'mount_efs.optimize_readahead_window')

    options = dict(DEFAULT_OPTIONS)
    options['tls'] = None
    options['netns'] = NETNS

    mount_efs.mount_nfs(CONFIG, DNS_NAME, '/', '/mnt', options)

    args, _ = mock.call_args
    args = args[0]

    assert 'nsenter' == args[NETNS_NSENTER_ARG_IDX]
    assert '--net=' + NETNS == args[NETNS_PATH_ARG_IDX]
    assert '/sbin/mount.nfs4' == args[NFS_BIN_ARG_IDX + NETNS_NFS_OFFSET]
    assert DNS_NAME not in args[NFS_MOUNT_PATH_IDX + NETNS_NFS_OFFSET]
    assert '127.0.0.1' in args[NFS_MOUNT_PATH_IDX + NETNS_NFS_OFFSET]
    assert '/mnt' in args[NFS_MOUNT_POINT_IDX + NETNS_NFS_OFFSET]

    utils.assert_called_once(optimize_readahead_window_mock)
예제 #13
0
def test_mount_nfs_tls_netns(mocker):
    mock = _mock_popen(mocker)
    optimize_readahead_window_mock = mocker.patch(
        "mount_efs.optimize_readahead_window")

    options = dict(DEFAULT_OPTIONS)
    options["tls"] = None
    options["netns"] = NETNS

    mount_efs.mount_nfs(CONFIG, DNS_NAME, "/", "/mnt", options)

    args, _ = mock.call_args
    args = args[0]

    assert "nsenter" == args[NETNS_NSENTER_ARG_IDX]
    assert "--net=" + NETNS == args[NETNS_PATH_ARG_IDX]
    assert "/sbin/mount.nfs4" == args[NFS_BIN_ARG_IDX + NETNS_NFS_OFFSET]
    assert DNS_NAME not in args[NFS_MOUNT_PATH_IDX + NETNS_NFS_OFFSET]
    assert "127.0.0.1" in args[NFS_MOUNT_PATH_IDX + NETNS_NFS_OFFSET]
    assert "/mnt" in args[NFS_MOUNT_POINT_IDX + NETNS_NFS_OFFSET]

    utils.assert_called_once(optimize_readahead_window_mock)
예제 #14
0
def test_mount_nfs_with_fallback_ip_address(mocker):
    mock = _mock_popen(mocker)
    optimize_readahead_window_mock = mocker.patch(
        "mount_efs.optimize_readahead_window")

    mount_efs.mount_nfs(
        CONFIG,
        DNS_NAME,
        "/",
        "/mnt",
        DEFAULT_OPTIONS,
        fallback_ip_address=FALLBACK_IP_ADDRESS,
    )

    args, _ = mock.call_args
    args = args[0]

    assert "/sbin/mount.nfs4" == args[NFS_BIN_ARG_IDX]
    assert DNS_NAME not in args[NFS_MOUNT_PATH_IDX]
    assert FALLBACK_IP_ADDRESS in args[NFS_MOUNT_PATH_IDX]
    assert "/mnt" == args[NFS_MOUNT_POINT_IDX]

    utils.assert_called_once(optimize_readahead_window_mock)