Esempio n. 1
0
def test_find_connectable_master_happy_path(mock_check_ssh_and_sudo_on_master):
    masters = [
        '192.0.2.1',
        '192.0.2.2',
        '192.0.2.3',
    ]
    timeout = 6.0
    mock_check_ssh_and_sudo_on_master.return_value = (True, None)

    actual = utils.find_connectable_master(masters)
    expected = (masters[0], None)
    assert mock_check_ssh_and_sudo_on_master.call_count == 1
    mock_check_ssh_and_sudo_on_master.assert_called_once_with(masters[0], timeout=timeout)
    assert actual == expected
Esempio n. 2
0
def test_find_connectable_master_all_failures(mock_check_ssh_and_sudo_on_master):
    masters = [
        '192.0.2.1',
        '192.0.2.2',
        '192.0.2.3',
    ]
    timeout = 6.0
    mock_check_ssh_and_sudo_on_master.return_value = (255, "timeout")

    actual = utils.find_connectable_master(masters)
    assert mock_check_ssh_and_sudo_on_master.call_count == 3
    mock_check_ssh_and_sudo_on_master.assert_any_call((masters[0]), timeout=timeout)
    mock_check_ssh_and_sudo_on_master.assert_any_call((masters[1]), timeout=timeout)
    mock_check_ssh_and_sudo_on_master.assert_any_call((masters[2]), timeout=timeout)
    assert actual[0] is None
    assert 'timeout' in actual[1]
Esempio n. 3
0
def test_find_connectable_master_one_failure(mock_check_ssh_and_sudo_on_master):
    masters = [
        '192.0.2.1',
        '192.0.2.2',
        '192.0.2.3',
    ]
    timeout = 6.0
    # iter() is a workaround
    # (http://lists.idyll.org/pipermail/testing-in-python/2013-April/005527.html)
    # for a bug in mock (http://bugs.python.org/issue17826)
    create_connection_side_effects = iter([
        (False, "something bad"),
        (True, 'unused'),
        (True, 'unused'),
    ])
    mock_check_ssh_and_sudo_on_master.side_effect = create_connection_side_effects
    mock_check_ssh_and_sudo_on_master.return_value = True

    actual = utils.find_connectable_master(masters)
    assert mock_check_ssh_and_sudo_on_master.call_count == 2
    mock_check_ssh_and_sudo_on_master.assert_any_call(masters[0], timeout=timeout)
    mock_check_ssh_and_sudo_on_master.assert_any_call(masters[1], timeout=timeout)
    assert actual == ('192.0.2.2', None)