|
1 | | -from alpaca.trading.enums import OrderSide, OrderType, TimeInForce, OrderClass |
| 1 | +import uuid |
| 2 | +import warnings |
| 3 | + |
| 4 | +import pytest |
| 5 | + |
| 6 | +from alpaca.trading.enums import ( |
| 7 | + OrderClass, |
| 8 | + OrderSide, |
| 9 | + OrderType, |
| 10 | + TimeInForce, |
| 11 | + TradeEvent, |
| 12 | +) |
| 13 | +from alpaca.trading.models import TradeUpdate |
2 | 14 | from alpaca.trading.requests import ( |
3 | | - MarketOrderRequest, |
4 | | - TrailingStopOrderRequest, |
5 | 15 | LimitOrderRequest, |
| 16 | + MarketOrderRequest, |
6 | 17 | OptionLegRequest, |
| 18 | + TrailingStopOrderRequest, |
7 | 19 | ) |
8 | | -import pytest |
9 | | -import warnings |
10 | 20 |
|
11 | 21 |
|
12 | 22 | def test_has_qty_or_notional_but_not_both(): |
@@ -204,3 +214,26 @@ def factory(warn_validated: bool = True, **kwargs): |
204 | 214 | OptionLegRequest(symbol=symbols[0], ratio_qty=1, side=OrderSide.BUY) |
205 | 215 | ], |
206 | 216 | ) |
| 217 | + |
| 218 | + |
| 219 | +def test_trade_update_events() -> None: |
| 220 | + base = { |
| 221 | + "timestamp": "2025-01-01T11:11:11.123456Z", |
| 222 | + "event": "accepted", |
| 223 | + "order": { |
| 224 | + "id": uuid.uuid4(), |
| 225 | + "client_order_id": "123", |
| 226 | + "created_at": "2025-01-01T11:11:11.123456Z", |
| 227 | + "updated_at": "2025-01-01T11:11:11.123456Z", |
| 228 | + "submitted_at": "2025-01-01T11:11:11.123456Z", |
| 229 | + "order_class": "simple", |
| 230 | + "time_in_force": "day", |
| 231 | + "status": "accepted", |
| 232 | + "extended_hours": False, |
| 233 | + }, |
| 234 | + } |
| 235 | + |
| 236 | + for event in TradeEvent: |
| 237 | + msg = base.copy() |
| 238 | + msg["event"] = event |
| 239 | + TradeUpdate(**msg) |
0 commit comments