Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions flumine/order/order.py
Original file line number Diff line number Diff line change
Expand Up @@ -594,14 +594,14 @@ def _polarity(self):
@property
def average_price_matched(self) -> float:
try:
return self.current_order.get("matched_price", 0)
return self.current_order.get("matched_price", 0) or 0.0
except AttributeError:
return 0.0

@property
def size_matched(self) -> float:
try:
return self.current_order.get("matched_size", 0)
return self.current_order.get("matched_size", 0) or 0.0
except AttributeError:
return 0.0

Expand All @@ -610,9 +610,9 @@ def size_remaining(self):
if self.current_order.get("status") in ["Settled", "Cancelled", "Void"]:
return 0.0
if "size_remaining" in self.current_order:
return self.current_order.get("size_remaining", 0)
return self.current_order.get("size_remaining", 0) or 0.0
try:
return self.current_order.get("remaining_size", 0)
return self.current_order.get("remaining_size", 0) or 0.0
except AttributeError:
return self.order_type.size

Expand Down
21 changes: 21 additions & 0 deletions tests/test_order.py
Original file line number Diff line number Diff line change
Expand Up @@ -757,12 +757,24 @@ def test_average_price_matched(self):
self.order.responses.current_order = mock_current_order
self.assertEqual(self.order.average_price_matched, 12.3)

def test_average_price_matched_none(self):
self.assertEqual(self.order.average_price_matched, 0)
mock_current_order = {"matched_price": None}
self.order.responses.current_order = mock_current_order
self.assertEqual(self.order.average_price_matched, 0.0)

def test_size_matched(self):
self.assertEqual(self.order.size_matched, 0)
mock_current_order = {"matched_size": 12}
self.order.responses.current_order = mock_current_order
self.assertEqual(self.order.size_matched, 12)

def test_size_matched_none(self):
self.assertEqual(self.order.size_matched, 0)
mock_current_order = {"matched_size": None}
self.order.responses.current_order = mock_current_order
self.assertEqual(self.order.size_matched, 0.0)

def test_size_remaining(self):
self.mock_order_type.ORDER_TYPE = OrderTypes.LIMIT
self.mock_order_type.size = 0
Expand All @@ -778,6 +790,15 @@ def test_size_remaining(self):
self.order.responses.current_order = mock_current_order
self.assertEqual(self.order.size_remaining, 0.0)

def test_size_remaining_none(self):
self.mock_order_type.ORDER_TYPE = OrderTypes.LIMIT
self.mock_order_type.size = 0
self.mock_order_type.bet_target_size = 0
self.assertEqual(self.order.size_remaining, 0)
mock_current_order = {"size_remaining": None}
self.order.responses.current_order = mock_current_order
self.assertEqual(self.order.size_remaining, 0.0)

def test_size_cancelled(self):
self.assertEqual(self.order.size_cancelled, 0)

Expand Down
Loading