From 3a6e9281ceb2985850cf72c2ecd1a6562a0cae21 Mon Sep 17 00:00:00 2001 From: Matthias Bisping Date: Mon, 20 Jun 2022 14:45:09 +0200 Subject: [PATCH] fixed bug in check for empty data in refactored aggregation strategy... was correct before --- .../strategies/response/aggregation.py | 4 +++- .../server/aggregation_strategy_tets.py | 19 +++++++++++-------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/pyinfra/visitor/strategies/response/aggregation.py b/pyinfra/visitor/strategies/response/aggregation.py index db7ec3f..c3e5bd9 100644 --- a/pyinfra/visitor/strategies/response/aggregation.py +++ b/pyinfra/visitor/strategies/response/aggregation.py @@ -32,7 +32,7 @@ class AggregationStorageStrategy(ResponseStrategy): self.add_analysis_payload_to_buffer(analysis_payload) - if not analysis_payload["data"] or last: + if analysis_payload["data"] or last: self.upload_aggregated_items(object_descriptor) # TODO: mappings such as object_name -> responseFile should be put in a separate interface mapping layer. # See the enum-formatter in image-prediction service for reference. @@ -40,6 +40,8 @@ class AggregationStorageStrategy(ResponseStrategy): else: return Nothing + # TODO: aggregate response files and make responseFile -> responseFiles + def add_analysis_payload_to_buffer(self, analysis_payload): self.buffer.append({**analysis_payload, "metadata": omit(analysis_payload["metadata"], ["id"])}) diff --git a/test/unit_tests/server/aggregation_strategy_tets.py b/test/unit_tests/server/aggregation_strategy_tets.py index 268a6bf..c794dc8 100644 --- a/test/unit_tests/server/aggregation_strategy_tets.py +++ b/test/unit_tests/server/aggregation_strategy_tets.py @@ -1,3 +1,5 @@ +import json + import pytest from pyinfra.visitor.strategies.response.aggregation import AggregationStorageStrategy @@ -19,15 +21,23 @@ class TestAggregationStorageStrategy: } response_message_bodies = [*strat(analysis_response)] assert response_message_bodies == [ + { + "dossierId": "dossier0", + "fileId": "file0", + "pages": [0, 2], + "id": 1, + "responseFile": "dossier0/file0/id:1.json.gz", + }, { "dossierId": "dossier0", "fileId": "file0", "pages": [0, 2], "id": 3, "responseFile": "dossier0/file0/id:3.json.gz", - } + }, ] + def test_aggregation_strategy_with_empty_data_field(self, storage): strat = AggregationStorageStrategy(storage=storage) @@ -42,13 +52,6 @@ class TestAggregationStorageStrategy: } response_message_bodies = [*strat(analysis_response)] assert response_message_bodies == [ - { - "dossierId": "dossier0", - "fileId": "file0", - "pages": [0, 2], - "id": 1, - "responseFile": "dossier0/file0/id:1.json.gz", - }, { "dossierId": "dossier0", "fileId": "file0",