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"}]
def test_columns_validation_error(col_input: Any): metadata = Metadata() with pytest.raises(ValidationError): metadata.columns = col_input