From 0eccccafe57b320705b9c35f935d1b5c5774f046 Mon Sep 17 00:00:00 2001 From: foefl Date: Thu, 20 Mar 2025 12:29:04 +0100 Subject: [PATCH] fix return values in pipeline wrapper --- pyproject.toml | 2 +- src/delta_barth/pipelines.py | 9 ++++--- tests/test_pipelines.py | 47 +++++++++++++++++------------------- 3 files changed, 28 insertions(+), 30 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index aa5a892..231646a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "delta-barth" -version = "0.2.2" +version = "0.2.3" description = "prognosis module" authors = [ {name = "Florian Förster", email = "f.foerster@d-opt.com"}, diff --git a/src/delta_barth/pipelines.py b/src/delta_barth/pipelines.py index 40f599e..f1d626e 100644 --- a/src/delta_barth/pipelines.py +++ b/src/delta_barth/pipelines.py @@ -10,12 +10,13 @@ from delta_barth.types import JsonExportResponse, JsonResponse, JsonStatus def pipeline_sales_forecast( company_id: int | None, start_date: Datetime | None, -) -> tuple[JsonResponse, JsonStatus]: +) -> JsonExportResponse: result = forecast.pipeline_sales(SESSION, company_id=company_id, start_date=start_date) - response = JsonResponse(result.response.model_dump_json()) - status = JsonStatus(result.status.model_dump_json()) + export = JsonExportResponse(result.model_dump_json()) + # response = JsonResponse(result.response.model_dump_json()) + # status = JsonStatus(result.status.model_dump_json()) - return response, status + return export def pipeline_sales_forecast_dummy( diff --git a/tests/test_pipelines.py b/tests/test_pipelines.py index 3cb52c7..7c7080a 100644 --- a/tests/test_pipelines.py +++ b/tests/test_pipelines.py @@ -10,38 +10,35 @@ from delta_barth.errors import STATUS_HANDLER def test_sales_prognosis_pipeline(exmpl_api_sales_prognosis_resp): - def mock_request(*args, **kwargs): # pragma: no cover - return exmpl_api_sales_prognosis_resp, STATUS_HANDLER.SUCCESS - with patch( - "delta_barth.api.requests.get_sales_prognosis_data", - new=mock_request, - ): + "delta_barth.analysis.forecast.get_sales_prognosis_data", + ) as mock: + mock.return_value = (exmpl_api_sales_prognosis_resp, STATUS_HANDLER.SUCCESS) importlib.reload(delta_barth.pipelines) - json_resp, json_stat = pl.pipeline_sales_forecast(None, None) + json_export = pl.pipeline_sales_forecast(None, None) - assert isinstance(json_resp, str) - assert isinstance(json_stat, str) - parsed_resp = json.loads(json_resp) - assert "daten" in parsed_resp - assert len(parsed_resp["daten"]) > 0 - parsed_stat = json.loads(json_stat) - assert "code" in parsed_stat - assert parsed_stat["code"] == 0 + assert isinstance(json_export, str) + parsed_resp = json.loads(json_export) + assert "response" in parsed_resp + assert "status" in parsed_resp + assert "daten" in parsed_resp["response"] + assert len(parsed_resp["response"]["daten"]) > 0 + assert "code" in parsed_resp["status"] + assert parsed_resp["status"]["code"] == 0 def test_sales_prognosis_pipeline_dummy(): - json_resp, json_stat = pl.pipeline_sales_forecast_dummy(None, None) + json_export = pl.pipeline_sales_forecast_dummy(None, None) - assert isinstance(json_resp, str) - assert isinstance(json_stat, str) - parsed_resp = json.loads(json_resp) - assert "daten" in parsed_resp - assert len(parsed_resp["daten"]) > 0 - entry = parsed_resp["daten"][0] + assert isinstance(json_export, str) + parsed_resp = json.loads(json_export) + assert "response" in parsed_resp + assert "status" in parsed_resp + assert "daten" in parsed_resp["response"] + assert len(parsed_resp["response"]["daten"]) > 0 + entry = parsed_resp["response"]["daten"][0] assert entry["jahr"] == 2022 assert entry["monat"] == 11 assert entry["vorhersage"] == pytest.approx(47261.058594) - parsed_stat = json.loads(json_stat) - assert "code" in parsed_stat - assert parsed_stat["code"] == 0 + assert "code" in parsed_resp["status"] + assert parsed_resp["status"]["code"] == 0