From 692e72b3b26231da6ce6a29b542607a24db32a33 Mon Sep 17 00:00:00 2001 From: Matthias Bisping Date: Mon, 4 Apr 2022 18:29:17 +0200 Subject: [PATCH] refactoring --- image_prediction/transformer/transformer.py | 2 +- .../transformer/transformers/response.py | 6 +----- test/conftest.py | 4 ++++ test/unit_tests/compositor_test.py | 7 ++++--- test/unit_tests/coordinate_transformer_test.py | 12 ++++-------- 5 files changed, 14 insertions(+), 17 deletions(-) diff --git a/image_prediction/transformer/transformer.py b/image_prediction/transformer/transformer.py index c23d42f..e2dea6f 100644 --- a/image_prediction/transformer/transformer.py +++ b/image_prediction/transformer/transformer.py @@ -10,7 +10,7 @@ class Transformer(abc.ABC): raise NotImplementedError def __call__(self, obj): - return self.transform(obj) + return self._apply(self.transform, obj) @staticmethod def _must_be_mapped_over(obj): diff --git a/image_prediction/transformer/transformers/response.py b/image_prediction/transformer/transformers/response.py index 06eee4e..9c10944 100644 --- a/image_prediction/transformer/transformers/response.py +++ b/image_prediction/transformer/transformers/response.py @@ -8,14 +8,10 @@ from image_prediction.utils import get_logger logger = get_logger() -# TODO: move to transformers class ResponseTransformer(Transformer): def transform(self, data): logger.debug("ResponseTransformer.transform") - try: - return build_image_info(data) - except TypeError: - return map(build_image_info, data) + return build_image_info(data) def build_image_info(data: dict) -> dict: diff --git a/test/conftest.py b/test/conftest.py index 5f977e5..21e6c0d 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -444,3 +444,7 @@ def real_expected_service_response(): def pipeline(): pipeline = load_pipeline(verbose=False) return pipeline + + +def transform_equal(a, b): + return (list(a) if isinstance(a, map) else a) == b \ No newline at end of file diff --git a/test/unit_tests/compositor_test.py b/test/unit_tests/compositor_test.py index a886cc6..0f1152b 100644 --- a/test/unit_tests/compositor_test.py +++ b/test/unit_tests/compositor_test.py @@ -4,16 +4,17 @@ 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 test.conftest import transform_equal def test_identity(metadata): compositor = TransformerCompositor(IdentityFormatter()) - assert compositor(metadata) == metadata + assert transform_equal(compositor(metadata), metadata) def test_composition(metadata, metadata_formatted): compositor = TransformerCompositor(IdentityFormatter(), EnumFormatter()) - assert metadata_formatted == list(compositor(metadata)) + assert transform_equal(compositor(metadata), metadata_formatted) @pytest.fixture() @@ -28,4 +29,4 @@ def compositor_test_camel_case_metadata(info_label_map): 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 + assert transform_equal(compositor(compositor_test_enum_metadata), compositor_test_camel_case_metadata) diff --git a/test/unit_tests/coordinate_transformer_test.py b/test/unit_tests/coordinate_transformer_test.py index 8215fe3..ead3589 100644 --- a/test/unit_tests/coordinate_transformer_test.py +++ b/test/unit_tests/coordinate_transformer_test.py @@ -12,7 +12,7 @@ from image_prediction.info import Info from image_prediction.transformer.transformers.coordinate.fitz import FitzCoordinateTransformer from image_prediction.transformer.transformers.coordinate.fpdf import FPDFCoordinateTransformer from image_prediction.transformer.transformers.coordinate.pdfnet import PDFNetCoordinateTransformer -from test.conftest import array_to_image, add_image +from test.conftest import array_to_image, add_image, transform_equal @pytest.mark.parametrize("coordinate_system", ["fpdf"]) @@ -53,9 +53,9 @@ def test_pdfnet_coordinate_transformer(position_metadata_in_given_system, positi def test_coordinate_transformer_by_metadata( transformer, position_metadata_in_given_system, position_metadata_in_reference_system ): - assert equal(transformer.forward(position_metadata_in_reference_system), position_metadata_in_given_system) - assert equal(transformer.backward(position_metadata_in_given_system), position_metadata_in_reference_system) - assert equal( + assert transform_equal(transformer.forward(position_metadata_in_reference_system), position_metadata_in_given_system) + assert transform_equal(transformer.backward(position_metadata_in_given_system), position_metadata_in_reference_system) + assert transform_equal( compose(transformer.backward, transformer.forward)(position_metadata_in_reference_system), position_metadata_in_reference_system ) @@ -88,10 +88,6 @@ def position_metadata_in_reference_system(corner, corner2metadata_in_reference_s return [metadata, metadata] if multiple else metadata -def equal(a, b): - return (list(a) if isinstance(a, map) else a) == b - - @pytest.fixture(params=["top_left", "bottom_left", "bottom_right", "top_right"]) def corner(request): return request.param