delta-barth-py/tests/test_pipelines.py
2025-03-20 10:17:35 +01:00

48 lines
1.5 KiB
Python

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