import pytest from funcy import compose, lzip from pyinfra.server.packer.packers.identity import bundle from pyinfra.server.packing import pack, unpack, bytes_to_string from pyinfra.utils.func import lstarlift @pytest.mark.parametrize("n_items", [0, 2]) def test_pack(input_data_items, metadata): assert lstarlift(pack)(zip(input_data_items, metadata)) == [ {"data": bytes_to_string(d), "metadata": md} for d, md in zip(input_data_items, metadata) ] @pytest.mark.parametrize("n_items", [0, 2]) def test_pack_unpack(input_data_items, metadata): assert lstarlift(compose(unpack, pack))(zip(input_data_items, metadata)) == lzip(input_data_items, metadata) @pytest.mark.parametrize("n_items", [0, 2]) def test_bundle(input_data_items, metadata): assert lstarlift(bundle)(zip(input_data_items, metadata)) == [ {"data": d, "metadata": md} for d, md in zip(input_data_items, metadata) ]