diff --git a/pyproject.toml b/pyproject.toml index 63782ef..1662e58 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "retrack" -version = "3.3.2" +version = "3.3.3" description = "A business rules engine" authors = ["Gabriel Guarisa "] license = "MIT" diff --git a/retrack/nodes/datetime.py b/retrack/nodes/datetime.py index 80543df..533738a 100644 --- a/retrack/nodes/datetime.py +++ b/retrack/nodes/datetime.py @@ -87,6 +87,10 @@ def replace_invalid(value): timestamp_1 = input_value_1.apply(replace_invalid) differences = timestamp_1.sub(timestamp_0) + + if differences.empty: + return {"output_value": pd.Series()} + days = differences.dt.days return {"output_value": days} diff --git a/tests/test_nodes/test_datetime.py b/tests/test_nodes/test_datetime.py index 6e8ba6b..54115d1 100644 --- a/tests/test_nodes/test_datetime.py +++ b/tests/test_nodes/test_datetime.py @@ -186,6 +186,20 @@ def now(cls, tz=None): assert (output["output_value"] == pd.Series([30, -30])).all() +@pytest.mark.asyncio +async def test_difference_between_dates_node_run_with_empty_series( + difference_between_dates_input_data, +): + difference_between_dates_node = DifferenceBetweenDates( + **difference_between_dates_input_data + ) + + output = await difference_between_dates_node.run(pd.Series(), pd.Series()) + + assert isinstance(output["output_value"], pd.Series) + assert output["output_value"].empty + + @pytest.fixture def to_iso_format_input_data(): return {