Build 060.2: add REST trade transport model
This commit is contained in:
@@ -13,6 +13,7 @@ from src.market_data.acquisition.adapters.dzengi.models import (
|
||||
DzengiLotSizeFilter,
|
||||
DzengiMinNotionalFilter,
|
||||
DzengiRateLimit,
|
||||
DzengiRestAggTrade,
|
||||
DzengiUnknownFilter,
|
||||
)
|
||||
|
||||
@@ -203,4 +204,49 @@ def test_raw_models_are_immutable() -> None:
|
||||
response = DzengiExchangeInfoResponse(payload=payload)
|
||||
|
||||
with pytest.raises(FrozenInstanceError):
|
||||
response.status = "OK" # type: ignore[misc]
|
||||
response.status = "OK" # type: ignore[misc]
|
||||
|
||||
def test_rest_agg_trade_stores_complete_transport_contract() -> None:
|
||||
trade = DzengiRestAggTrade(
|
||||
aggregate_trade_id=2134857062,
|
||||
price="64497.25",
|
||||
quantity="0.005",
|
||||
timestamp=1784218066823,
|
||||
buyer_is_maker=False,
|
||||
)
|
||||
|
||||
assert trade.aggregate_trade_id == 2134857062
|
||||
assert trade.price == "64497.25"
|
||||
assert trade.quantity == "0.005"
|
||||
assert trade.timestamp == 1784218066823
|
||||
assert trade.buyer_is_maker is False
|
||||
|
||||
|
||||
def test_rest_agg_trade_preserves_raw_numeric_values() -> None:
|
||||
trade = DzengiRestAggTrade(
|
||||
aggregate_trade_id=2134846831,
|
||||
price=64555.55,
|
||||
quantity=2,
|
||||
timestamp=1784218012030,
|
||||
buyer_is_maker=True,
|
||||
)
|
||||
|
||||
assert trade.price == 64555.55
|
||||
assert isinstance(trade.price, float)
|
||||
assert trade.quantity == 2
|
||||
assert isinstance(trade.quantity, int)
|
||||
|
||||
|
||||
def test_rest_agg_trade_is_immutable_and_uses_slots() -> None:
|
||||
trade = DzengiRestAggTrade(
|
||||
aggregate_trade_id=2134857062,
|
||||
price="64497.25",
|
||||
quantity="0.005",
|
||||
timestamp=1784218066823,
|
||||
buyer_is_maker=False,
|
||||
)
|
||||
|
||||
assert not hasattr(trade, "__dict__")
|
||||
|
||||
with pytest.raises(FrozenInstanceError):
|
||||
trade.price = "1.00" # type: ignore[misc]
|
||||
|
||||
Reference in New Issue
Block a user