fix: Improve order idempotency key generation by handling missing prices, mock `breeze_connect` in the option whitelist script, and update paper exchange tests to include order prices.

pull/12760/head
vijay sharma 4 months ago
parent 3123d36fd1
commit 7d4cccffa4

@ -68,7 +68,11 @@ class OrderIdempotency:
pair = str(fields.get("pair", "")).upper()
side = str(fields.get("side", "")).lower()
amount = f"{float(fields.get('amount', 0)):.8f}"
price = f"{float(fields.get('price', 0)):.8f}"
raw_price = fields.get("price")
if raw_price in [None, "None", ""]:
price = "0.00000000"
else:
price = f"{float(raw_price):.8f}"
# Optional context
tf = fields.get("timeframe", "")

@ -11,7 +11,12 @@ from statistics import median
from typing import Callable
from zoneinfo import ZoneInfo
sys.path.append(os.getcwd())
from unittest.mock import MagicMock
import sys
# Mock breeze_connect to avoid 504 Gateway Timeout on import
sys.modules["breeze_connect"] = MagicMock()
from adapters.ccxt_shim.breeze_ccxt import BreezeCCXT
from adapters.ccxt_shim.instrument import InstrumentSpec, InstrumentType, format_pair

@ -57,7 +57,7 @@ def test_paper_create_order_simulates_fill(paper_exchange):
with mock.patch.object(
paper_exchange.risk_guard, "should_block_entry", return_value=(False, "OK")
):
order = paper_exchange.create_order(symbol, "limit", side, amount)
order = paper_exchange.create_order(symbol, "limit", side, amount, 1000.0)
# Checks
assert order["status"] == "closed"
@ -98,7 +98,7 @@ def test_real_order_blocked_in_paper_mode(paper_exchange):
with mock.patch.object(
paper_exchange.risk_guard, "should_block_entry", return_value=(False, "OK")
):
paper_exchange.create_order("SBIN/INR", "limit", "buy", 1)
paper_exchange.create_order("SBIN/INR", "limit", "buy", 1, 100.0)
assert len(paper_exchange._mock_orders) == 0

Loading…
Cancel
Save