From d9b4ab42a79885a252a39e2d445068b7d620f924 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20F=C3=B6rster?= Date: Fri, 14 Mar 2025 09:00:42 +0100 Subject: [PATCH] remove sales value from forecast response --- src/delta_barth/analysis/forecast.py | 11 +++++++++++ tests/_test_data/exmp_sales_prognosis_ouput.pkl | Bin 983 -> 853 bytes tests/analysis/test_forecast.py | 12 +++++++++++- 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/delta_barth/analysis/forecast.py b/src/delta_barth/analysis/forecast.py index f5340ed..5fea086 100644 --- a/src/delta_barth/analysis/forecast.py +++ b/src/delta_barth/analysis/forecast.py @@ -202,6 +202,7 @@ def _process_sales( df_cust = df_cust.sort_values(by=DATE_FEAT).reset_index() # check data availability + # TODO rework criteria if len(df_cust) < min_num_data_points: pipe.fail(STATUS_HANDLER.pipe_states.TOO_FEW_POINTS) return pipe @@ -238,6 +239,7 @@ def _process_sales( reg.fit(X_train, y_train, eval_set=[(X_train, y_train), (X_test, y_test)], verbose=100) test.loc[:, "vorhersage"] = reg.predict(X_test) + test = test.drop(SALES_FEAT, axis=1) test = test.reset_index(drop=True) pipe.success(test, STATUS_HANDLER.SUCCESS) @@ -320,3 +322,12 @@ def pipeline_sales( assert pipe.results is not None, "needed export response not set in pipeline" return pipe.results + + +def pipeline_sales_dummy( + session: Session, + company_id: int | None = None, + start_date: Datetime | None = None, +) -> SalesPrognosisResultsExport: + """prototype dummy function for tests by DelBar""" + ... diff --git a/tests/_test_data/exmp_sales_prognosis_ouput.pkl b/tests/_test_data/exmp_sales_prognosis_ouput.pkl index 0ddfa5c9824d1cd3f7adae1db1e6db76c1789167..f263c713e167090c59e38da74043924aa603be51 100644 GIT binary patch delta 61 zcmV-D0K)&*2h|1yfCZIGu>@TKliC4Llf?lK0fv)00xtnElWGE70RxlA0z8up10Dl2 Tj2V+a0u+-$0~rBKlUoCPM7j|- delta 134 zcmcc0cAcH2fpzMcjV!T@<{AtT@FsAF+|rm24m;#pUk4W5bdU#9Ck|h6m^E|e%!@DI zIM{JrU+j_l-eF3HP!Cg@#pD)7o5|6PVFJwFEZ&UmQ-Y>=Gl9tV$p;zr8Eq$jWQ<{C hne4}8!_JnJT2hplKDmQQfzf{QN+x~A$jLXEY5=KUF}eT% diff --git a/tests/analysis/test_forecast.py b/tests/analysis/test_forecast.py index 7b65e4b..431aaf9 100644 --- a/tests/analysis/test_forecast.py +++ b/tests/analysis/test_forecast.py @@ -225,8 +225,18 @@ def test_postprocess_sales_FailValidation( assert "ValidationError" in pipe.status.description +def test_export_on_fail(): + status = STATUS_HANDLER.pipe_states.TOO_FEW_POINTS + res = fc._export_on_fail(status) + assert res.response is not None + assert len(res.response.daten) == 0 + assert res.status is not None + assert res.status.code == status.code + assert res.status.description == status.description + + def test_pipeline_sales_prognosis(exmpl_api_sales_prognosis_resp): - def mock_request(*args, **kwargs): + def mock_request(*args, **kwargs): # pragma: no cover return exmpl_api_sales_prognosis_resp, STATUS_HANDLER.SUCCESS with patch(