mirror of
https://github.com/BigBodyCobain/Shadowbroker.git
synced 2026-08-18 00:17:17 +02:00
Cover fail-closed dispute authority
This commit is contained in:
@@ -3,22 +3,52 @@
|
||||
from services.infonet.markets.dispute import collect_disputes
|
||||
|
||||
|
||||
def test_collect_disputes_normalizes_invalid_numeric_values():
|
||||
chain = [
|
||||
{
|
||||
"event_type": "dispute_open",
|
||||
"event_id": "dispute-1",
|
||||
"node_id": "challenger",
|
||||
"timestamp": "not-a-timestamp",
|
||||
"payload": {
|
||||
"market_id": "market-1",
|
||||
"challenger_stake": "nan",
|
||||
},
|
||||
def _open_event(
|
||||
*, dispute_id: str, market_id: str, timestamp: object, challenger_stake: object
|
||||
) -> dict:
|
||||
return {
|
||||
"event_type": "dispute_open",
|
||||
"event_id": dispute_id,
|
||||
"node_id": "challenger",
|
||||
"timestamp": timestamp,
|
||||
"payload": {
|
||||
"market_id": market_id,
|
||||
"challenger_stake": challenger_stake,
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
def test_malformed_authoritative_open_events_are_excluded() -> None:
|
||||
chain = [
|
||||
_open_event(
|
||||
dispute_id="bad-time",
|
||||
market_id="market-1",
|
||||
timestamp="not-a-timestamp",
|
||||
challenger_stake=3.0,
|
||||
),
|
||||
_open_event(
|
||||
dispute_id="bad-stake",
|
||||
market_id="market-1",
|
||||
timestamp=10.0,
|
||||
challenger_stake=float("nan"),
|
||||
),
|
||||
]
|
||||
|
||||
assert collect_disputes("market-1", chain) == []
|
||||
|
||||
|
||||
def test_invalid_economic_and_resolution_values_fail_closed() -> None:
|
||||
chain = [
|
||||
_open_event(
|
||||
dispute_id="dispute-1",
|
||||
market_id="market-1",
|
||||
timestamp=10.0,
|
||||
challenger_stake=3.0,
|
||||
),
|
||||
{
|
||||
"event_type": "dispute_stake",
|
||||
"node_id": "oracle-1",
|
||||
"timestamp": 1.0,
|
||||
"timestamp": 11.0,
|
||||
"payload": {
|
||||
"dispute_id": "dispute-1",
|
||||
"side": "confirm",
|
||||
@@ -31,34 +61,26 @@ def test_collect_disputes_normalizes_invalid_numeric_values():
|
||||
"timestamp": float("inf"),
|
||||
"payload": {
|
||||
"dispute_id": "dispute-1",
|
||||
"outcome": "upheld",
|
||||
"outcome": "reversed",
|
||||
},
|
||||
},
|
||||
]
|
||||
|
||||
disputes = collect_disputes("market-1", chain)
|
||||
dispute = collect_disputes("market-1", chain)[0]
|
||||
|
||||
assert len(disputes) == 1
|
||||
dispute = disputes[0]
|
||||
assert dispute.challenger_stake == 0.0
|
||||
assert dispute.opened_at == 0.0
|
||||
assert dispute.confirm_stakes == []
|
||||
assert dispute.resolved_outcome == "upheld"
|
||||
assert dispute.resolved_at == 0.0
|
||||
assert dispute.resolved_outcome is None
|
||||
assert dispute.resolved_at is None
|
||||
|
||||
|
||||
def test_collect_disputes_preserves_finite_numeric_strings():
|
||||
def test_collect_disputes_preserves_finite_numeric_strings() -> None:
|
||||
chain = [
|
||||
{
|
||||
"event_type": "dispute_open",
|
||||
"event_id": "dispute-2",
|
||||
"node_id": "challenger",
|
||||
"timestamp": "12.5",
|
||||
"payload": {
|
||||
"market_id": "market-2",
|
||||
"challenger_stake": "3.5",
|
||||
},
|
||||
},
|
||||
_open_event(
|
||||
dispute_id="dispute-2",
|
||||
market_id="market-2",
|
||||
timestamp="12.5",
|
||||
challenger_stake="3.5",
|
||||
),
|
||||
{
|
||||
"event_type": "dispute_stake",
|
||||
"node_id": "oracle-2",
|
||||
@@ -69,6 +91,14 @@ def test_collect_disputes_preserves_finite_numeric_strings():
|
||||
"amount": "2.25",
|
||||
},
|
||||
},
|
||||
{
|
||||
"event_type": "dispute_resolve",
|
||||
"timestamp": "13.5",
|
||||
"payload": {
|
||||
"dispute_id": "dispute-2",
|
||||
"outcome": "reversed",
|
||||
},
|
||||
},
|
||||
]
|
||||
|
||||
dispute = collect_disputes("market-2", chain)[0]
|
||||
@@ -76,3 +106,5 @@ def test_collect_disputes_preserves_finite_numeric_strings():
|
||||
assert dispute.challenger_stake == 3.5
|
||||
assert dispute.opened_at == 12.5
|
||||
assert dispute.reverse_stakes[0]["amount"] == 2.25
|
||||
assert dispute.resolved_outcome == "reversed"
|
||||
assert dispute.resolved_at == 13.5
|
||||
|
||||
Reference in New Issue
Block a user