예제 #1
0
def _process_payload(payload_columns, all_available_columns, cube):
    """
    Process and check given payload columns.

    Parameters
    ----------
    payload_columns: Optional[Iterable[str]]
        Which columns apart from ``dimension_columns`` and ``partition_by`` should be returned from the query.
    all_available_columns: Set[str]
        All columns that are available for query.
    cube: Cube
        Cube specification.

    Returns
    -------
    payload_columns: Set[str]
        Payload columns to be returned from the query.
    """
    if payload_columns is None:
        return all_available_columns
    else:
        payload_columns = converter_str_set(payload_columns)
        missing = payload_columns - all_available_columns
        if missing:
            raise ValueError(
                "Cannot find the following requested payload columns: {missing}".format(
                    missing=", ".join(sorted(missing))
                )
            )
        return payload_columns
예제 #2
0
def test_str_set(param, expected):
    actual = converter_str_set(param)
    assert isinstance(actual, frozenset)
    assert actual == expected
    assert all(isinstance(x, str) for x in actual)