def test_get_parameters(mocker, source, parameters_to_get, parameters): mock_fp = mock.Mock() mock_iter = mocker.patch("octane.util.helpers.iterate_parameters") mock_iter.return_value = source result = helpers.get_parameters(mock_fp, parameters_to_get) mock_iter.assert_called_once_with(mock_fp) assert result == parameters
def get_parameters(node, filename, parameters_to_get, ensure=True): with ssh.sftp(node).open(filename) as fp: parameters = helpers.get_parameters(fp, parameters_to_get) if ensure: required_parameters = set(parameters_to_get) current_parameters = set(parameters) absent_parameters = required_parameters - current_parameters if absent_parameters: flat_parameters = [] for aparam in absent_parameters: for param in parameters_to_get[aparam]: flat_parameters.append("/".join(param)) raise AbsentParametersError( node.data["id"], filename, flat_parameters) return parameters