32 lines
1.2 KiB
Python
32 lines
1.2 KiB
Python
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_camelcase_metadata(info_label_map):
|
|
return [{"width": 100, "pageWidth": 200}]
|
|
|
|
|
|
def test_enum_to_camel_case(compositor_test_enum_metadata, compositor_test_camelcase_metadata):
|
|
compositor = TransformerCompositor(EnumFormatter(), Snake2CamelCaseKeyFormatter())
|
|
assert list(compositor(compositor_test_enum_metadata)) == compositor_test_camelcase_metadata
|