38 lines
978 B
Python
38 lines
978 B
Python
"""Tests for the order manager."""
|
|
|
|
import pytest
|
|
|
|
from execution.order_manager import Order, OrderStatus
|
|
|
|
|
|
class TestOrder:
|
|
"""Tests for Order dataclass."""
|
|
|
|
def test_order_defaults(self):
|
|
order = Order(
|
|
id="test-001",
|
|
symbol="BTC/USDT",
|
|
side="buy",
|
|
order_type="market",
|
|
amount=0.01,
|
|
)
|
|
assert order.status == OrderStatus.PENDING
|
|
assert order.filled_amount == 0.0
|
|
assert order.fee == 0.0
|
|
assert order.exchange_order_id is None
|
|
|
|
def test_order_status_transitions(self):
|
|
order = Order(
|
|
id="test-002",
|
|
symbol="ETH/USDT",
|
|
side="sell",
|
|
order_type="limit",
|
|
amount=0.5,
|
|
price=3000.0,
|
|
)
|
|
order.status = OrderStatus.FILLED
|
|
assert order.status == OrderStatus.FILLED
|
|
|
|
order.status = OrderStatus.CANCELLED
|
|
assert order.status == OrderStatus.CANCELLED
|