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 from image_prediction.info import Info from test.utils.comparison import transform_equal def test_identity(metadata): compositor = TransformerCompositor(IdentityFormatter()) assert transform_equal(compositor(metadata), metadata) def test_composition(metadata, metadata_formatted): compositor = TransformerCompositor(IdentityFormatter(), EnumFormatter()) assert transform_equal(compositor(metadata), metadata_formatted) @pytest.fixture() def compositor_test_enum_metadata(): return [{Info.WIDTH: 100, Info.PAGE_WIDTH: 200}] @pytest.fixture() def compositor_test_camel_case_metadata(): 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 transform_equal(compositor(compositor_test_enum_metadata), compositor_test_camel_case_metadata)