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')
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)
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')
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.'
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)