summaryrefslogtreecommitdiff
path: root/services/order-executor/tests/test_executor.py
diff options
context:
space:
mode:
authorTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2026-04-02 10:12:06 +0900
committerTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2026-04-02 10:12:06 +0900
commit35120795147adf53de59b7f2a3c8aa14adec9a56 (patch)
treefb747eae72d40fbf0520d6bca917cd0e0ba87b66 /services/order-executor/tests/test_executor.py
parent47465828d839c460a6af12894451539908d76c26 (diff)
refactor: update data-collector and order-executor for Alpaca API
Diffstat (limited to 'services/order-executor/tests/test_executor.py')
-rw-r--r--services/order-executor/tests/test_executor.py20
1 files changed, 10 insertions, 10 deletions
diff --git a/services/order-executor/tests/test_executor.py b/services/order-executor/tests/test_executor.py
index e64b6c0..dd823d7 100644
--- a/services/order-executor/tests/test_executor.py
+++ b/services/order-executor/tests/test_executor.py
@@ -13,7 +13,7 @@ from order_executor.risk_manager import RiskCheckResult, RiskManager
def make_signal(side: OrderSide = OrderSide.BUY, price: str = "100", quantity: str = "1") -> Signal:
return Signal(
strategy="test",
- symbol="BTC/USDT",
+ symbol="AAPL",
side=side,
price=Decimal(price),
quantity=Decimal(quantity),
@@ -21,10 +21,10 @@ def make_signal(side: OrderSide = OrderSide.BUY, price: str = "100", quantity: s
)
-def make_mock_exchange(free_usdt: float = 10000.0) -> AsyncMock:
+def make_mock_exchange(buying_power: str = "10000") -> AsyncMock:
exchange = AsyncMock()
- exchange.fetch_balance.return_value = {"free": {"USDT": free_usdt}}
- exchange.create_order = AsyncMock(return_value={"id": "exchange-order-123"})
+ exchange.get_buying_power = AsyncMock(return_value=Decimal(buying_power))
+ exchange.submit_order = AsyncMock(return_value={"id": "alpaca-order-123"})
return exchange
@@ -48,7 +48,7 @@ def make_mock_db() -> AsyncMock:
@pytest.mark.asyncio
async def test_executor_places_order_when_risk_passes():
- """When risk check passes, create_order is called and order status is FILLED."""
+ """When risk check passes, submit_order is called and order status is FILLED."""
exchange = make_mock_exchange()
risk_manager = make_mock_risk_manager(allowed=True)
broker = make_mock_broker()
@@ -68,14 +68,14 @@ async def test_executor_places_order_when_risk_passes():
assert order is not None
assert order.status == OrderStatus.FILLED
- exchange.create_order.assert_called_once()
+ exchange.submit_order.assert_called_once()
db.insert_order.assert_called_once_with(order)
broker.publish.assert_called_once()
@pytest.mark.asyncio
async def test_executor_rejects_when_risk_fails():
- """When risk check fails, create_order is not called and None is returned."""
+ """When risk check fails, submit_order is not called and None is returned."""
exchange = make_mock_exchange()
risk_manager = make_mock_risk_manager(allowed=False, reason="Position size exceeded")
broker = make_mock_broker()
@@ -94,14 +94,14 @@ async def test_executor_rejects_when_risk_fails():
order = await executor.execute(signal)
assert order is None
- exchange.create_order.assert_not_called()
+ exchange.submit_order.assert_not_called()
db.insert_order.assert_not_called()
broker.publish.assert_not_called()
@pytest.mark.asyncio
async def test_executor_dry_run_does_not_call_exchange():
- """In dry-run mode, risk passes, order is FILLED, but exchange.create_order is NOT called."""
+ """In dry-run mode, risk passes, order is FILLED, but exchange.submit_order is NOT called."""
exchange = make_mock_exchange()
risk_manager = make_mock_risk_manager(allowed=True)
broker = make_mock_broker()
@@ -121,6 +121,6 @@ async def test_executor_dry_run_does_not_call_exchange():
assert order is not None
assert order.status == OrderStatus.FILLED
- exchange.create_order.assert_not_called()
+ exchange.submit_order.assert_not_called()
db.insert_order.assert_called_once_with(order)
broker.publish.assert_called_once()