fix: converge broker failures without retry
This commit is contained in:
@@ -3,6 +3,8 @@ from __future__ import annotations
|
||||
|
||||
from uuid import UUID
|
||||
|
||||
import pytest
|
||||
|
||||
from trex_core.adapters.persistence.in_memory_intent_store import InMemoryIntentStore
|
||||
from trex_core.application.broker_port import (
|
||||
BalanceItem,
|
||||
@@ -96,7 +98,8 @@ def test_nxt_buy_wire_value_reaches_broker_order() -> None:
|
||||
assert broker.orders[0].venue == "NXT"
|
||||
|
||||
|
||||
def test_invalid_venue_is_rejected_before_slot_transition() -> None:
|
||||
@pytest.mark.parametrize("invalid_venue", ["AUTO", "UNKNOWN"])
|
||||
def test_invalid_venue_is_rejected_before_slot_transition(invalid_venue: str) -> None:
|
||||
repo, intents, _, _ = _wire()
|
||||
handler = make_intent_rpc_handler(intents)
|
||||
|
||||
@@ -107,7 +110,7 @@ def test_invalid_venue_is_rejected_before_slot_transition() -> None:
|
||||
"intent_id": "bad-venue",
|
||||
"portfolio_id": "PF-1",
|
||||
"qty": 1,
|
||||
"venue": "UNKNOWN",
|
||||
"venue": invalid_venue,
|
||||
},
|
||||
correlation_id="bad-venue",
|
||||
)
|
||||
@@ -118,7 +121,7 @@ def test_invalid_venue_is_rejected_before_slot_transition() -> None:
|
||||
assert repo.list_slots("default")[0].status is SlotState.INACTIVE
|
||||
|
||||
|
||||
def test_omitted_wire_venue_is_auto_then_actual_venue_is_persisted() -> None:
|
||||
def test_omitted_wire_venue_is_sor_then_actual_venue_is_persisted() -> None:
|
||||
repo = InMemorySlotRepository()
|
||||
service = SlotService(repo)
|
||||
intents = IntentService(
|
||||
@@ -146,10 +149,10 @@ def test_omitted_wire_venue_is_auto_then_actual_venue_is_persisted() -> None:
|
||||
|
||||
slot_id = UUID(response.payload["slot_id"])
|
||||
pending = repo.fetch_slot(slot_id)
|
||||
assert pending is not None and pending.venue == "AUTO"
|
||||
assert pending is not None and pending.venue == "SOR"
|
||||
execution.run_once()
|
||||
dispatched = repo.fetch_slot(slot_id)
|
||||
assert broker.orders[0].venue == "AUTO"
|
||||
assert broker.orders[0].venue == "SOR"
|
||||
assert dispatched is not None and dispatched.venue == "NXT"
|
||||
|
||||
|
||||
@@ -180,7 +183,7 @@ def test_inactive_transition_resets_venue_to_krx() -> None:
|
||||
assert reset.venue == "KRX"
|
||||
|
||||
|
||||
def test_holding_transition_resets_next_order_venue_to_auto() -> None:
|
||||
def test_holding_transition_resets_next_order_venue_to_sor() -> None:
|
||||
repo, intents, _, _ = _wire()
|
||||
decision = intents.submit_buy(
|
||||
BuyIntent(
|
||||
@@ -201,7 +204,7 @@ def test_holding_transition_resets_next_order_venue_to_auto() -> None:
|
||||
qty=1,
|
||||
avg_price=1000,
|
||||
)
|
||||
assert holding.venue == "AUTO"
|
||||
assert holding.venue == "SOR"
|
||||
|
||||
|
||||
def test_operator_cancel_uses_original_nxt_venue() -> None:
|
||||
|
||||
Reference in New Issue
Block a user