import pytest from image_prediction.compositor.compositor import TransformerCompositor from image_prediction.formatter.formatters.camel_case import Snake2CamelCaseKeyFormatter from image_prediction.formatter.formatters.enum import EnumFormatter from image_prediction.formatter.formatters.identity import IdentityFormatter def test_identity(metadata): compositor = TransformerCompositor(IdentityFormatter()) assert compositor(metadata) == metadata def test_composition(metadata, metadata_formatted): compositor = TransformerCompositor(IdentityFormatter(), EnumFormatter()) assert metadata_formatted == list(compositor(metadata)) @pytest.fixture() def compositor_test_enum_metadata(info_label_map): return [{info_label_map.WIDTH: 100, info_label_map.PAGE_WIDTH: 200}] @pytest.fixture() def compositor_test_camel_case_metadata(info_label_map): return [{"width": 100, "pageWidth": 200}] def test_enum_to_camel_case(compositor_test_enum_metadata, compositor_test_camel_case_metadata): compositor = TransformerCompositor(EnumFormatter(), Snake2CamelCaseKeyFormatter()) assert list(compositor(compositor_test_enum_metadata)) == compositor_test_camel_case_metadata