diff --git a/tests/test_execution_router.py b/tests/test_execution_router.py new file mode 100644 index 0000000..49724d9 --- /dev/null +++ b/tests/test_execution_router.py @@ -0,0 +1,22 @@ +import pytest + +from deltaforge_mvp.execution import ExecutionRouter +from deltaforge_mvp.core import Asset, StrategyDelta, PlanDelta + + +def test_execution_router_routing_changes_venue(): + # Prepare a minimal plan delta with a single hedge delta + a = Asset(type="equity", symbol="AAPL") + sd = StrategyDelta(asset=a, delta=0.1, timestamp=0.0) + plan = PlanDelta(deltas=[sd], venue=None, author="test", timestamp=0.0) + + router = ExecutionRouter(venues=["Venue-1", "Venue-2"]) + result = router.route(plan) + + # Expect a routed plan with a venue assigned + assert isinstance(result, dict) + assert result.get("routed") is True + assert result.get("venue") in ["Venue-1", "Venue-2"] + routed_plan = result.get("plan") + assert isinstance(routed_plan, PlanDelta) + assert routed_plan.venue == result["venue"]