import importlib import json from unittest.mock import patch import pytest import delta_barth.pipelines from delta_barth import pipelines as pl 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, ): importlib.reload(delta_barth.pipelines) json_resp, json_stat = 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 def test_sales_prognosis_pipeline_dummy(): json_resp, json_stat = 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 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