コード例 #1
0
def test_check_all_binary_dependencies_parsing_error(mocker):
    check_dependency_mock = mocker.patch(
        'util.dependencies_checker.check_dependency')
    check_dependency_mock.side_effect = ValueError
    mocker.patch('util.dependencies_checker.load_dependency_versions',
                 return_value=None)
    mocker.patch('util.dependencies_checker.save_dependency_versions',
                 return_value=None)
    fake_config_path = '/usr/ogorek/nctl_config'
    fake_config = mocker.patch('util.dependencies_checker.Config')
    fake_config.return_value.config_path = fake_config_path
    with pytest.raises(InvalidDependencyError):
        check_all_binary_dependencies(namespace='fake')
コード例 #2
0
def verify_cli_dependencies():
    try:
        namespace = 'kube-system' if is_current_user_administrator(request_timeout=VERIFY_REQUEST_TIMEOUT) \
            else get_kubectl_current_context_namespace()
    except Exception:
        error_msg = Texts.KUBECTL_NAMESPACE_ERROR_MSG
        handle_error(logger, error_msg, error_msg, add_verbosity_msg=True)
        sys.exit(1)
    try:
        check_os()
        check_all_binary_dependencies(namespace=namespace)
    except (InvalidDependencyError, InvalidOsError):
        error_msg = Texts.INVALID_DEPENDENCY_ERROR_MSG
        handle_error(logger, error_msg, error_msg, add_verbosity_msg=True)
コード例 #3
0
def test_check_all_binary_dependencies_invalid_version(mocker):
    check_dependency_mock = mocker.patch(
        'util.dependencies_checker.check_dependency')
    check_dependency_mock.return_value = False, LooseVersion('0.0.0')
    mocker.patch('util.dependencies_checker.load_dependency_versions',
                 return_value=None)
    mocker.patch('util.dependencies_checker.save_dependency_versions',
                 return_value=None)
    fake_config_path = '/usr/ogorek/nctl_config'
    fake_config = mocker.patch('util.dependencies_checker.Config')
    fake_config.return_value.config_path = fake_config_path

    with pytest.raises(InvalidDependencyError):
        check_all_binary_dependencies(namespace='fake')
コード例 #4
0
def test_check_all_binary_dependencies(mocker):
    check_dependency_mock = mocker.patch(
        'util.dependencies_checker.check_dependency')
    check_dependency_mock.return_value = True, LooseVersion('0.0.0')
    fake_config_path = '/usr/ogorek/nctl_config'
    fake_config = mocker.patch('util.dependencies_checker.Config')
    fake_config.return_value.config_path = fake_config_path

    load_dependency_versions_mock = mocker.patch(
        'util.dependencies_checker.load_dependency_versions',
        return_value=None)
    save_dependency_versions_mock = mocker.patch(
        'util.dependencies_checker.save_dependency_versions',
        return_value=None)

    check_all_binary_dependencies(namespace='fake')

    assert load_dependency_versions_mock.call_count == 1, 'Saved dependency versions were not loaded.'
    assert save_dependency_versions_mock.call_count == 1, 'Dependency versions were not saved.'
    assert check_dependency_mock.call_count == len(
        get_dependency_map()), 'Not all dependencies were checked.'
コード例 #5
0
def test_check_all_binary_dependencies_saved_versions(mocker):
    fake_namespace = 'fake'
    fake_version = LooseVersion('0.0.0')
    check_dependency_mock = mocker.patch(
        'util.dependencies_checker.check_dependency')
    check_dependency_mock.return_value = True, fake_version
    fake_config_path = '/usr/ogorek/nctl_config'
    fake_config = mocker.patch('util.dependencies_checker.Config')
    fake_config.return_value.config_path = fake_config_path

    saved_versions = {
        dependency_name: fake_version
        for dependency_name in get_dependency_map().keys()
    }

    load_dependency_versions_mock = mocker.patch(
        'util.dependencies_checker.load_dependency_versions',
        return_value=saved_versions)
    save_dependency_versions_mock = mocker.patch(
        'util.dependencies_checker.save_dependency_versions',
        return_value=None)

    check_all_binary_dependencies(namespace=fake_namespace)

    assert load_dependency_versions_mock.call_count == 1, 'Saved dependency versions were not loaded.'
    assert save_dependency_versions_mock.call_count == 0, 'Saved dependencies versions were overwritten.'
    assert check_dependency_mock.call_count == len(
        get_dependency_map()), 'Not all dependencies were checked.'
    expected_check_dependency_calls = [
        call(
            dependency_name=dependency_name,
            dependency_spec=dependency_spec,
            namespace=fake_namespace,
            saved_versions=saved_versions)
        for dependency_name, dependency_spec in get_dependency_map().items()
    ]
    check_dependency_mock.assert_has_calls(
        expected_check_dependency_calls, any_order=True)