Esempio n. 1
0
def test_column_and_partition_functionality():
    meta = Metadata()
    assert meta.columns == []

    cols = [
        {
            "name": "a",
            "type": "int8"
        },
        {
            "name": "b",
            "type": "string"
        },
        {
            "name": "c",
            "type": "date32"
        },
    ]

    meta.columns = cols
    assert meta.column_names == ["a", "b", "c"]

    assert meta.partitions == []
    assert meta.force_partition_order is None

    # force_partition_order is None so no change to order
    meta.partitions = ["b"]
    assert meta.column_names == ["a", "b", "c"]

    meta.force_partition_order = "start"
    meta.partitions = ["c", "b"]
    assert meta.column_names == ["c", "b", "a"]

    meta.force_partition_order = "end"
    assert meta.column_names == ["a", "c", "b"]

    meta.remove_column("c")
    assert meta.partitions == ["b"]

    with pytest.raises(ValueError):
        meta.force_partition_order = "error"

    with pytest.raises(ValueError):
        meta.partitions = ["c", "d"]

    with pytest.raises(ValueError):
        meta.columns = [{"name": "a", "type": "int8"}]
Esempio n. 2
0
def test_columns_validation_error(col_input: Any):
    metadata = Metadata()
    with pytest.raises(ValidationError):
        metadata.columns = col_input