Skip to content

Commit b72992e

Browse files
committed
Merge remote-tracking branch 'origin/task/python-312' into task/python-312
2 parents 4cd6f40 + 9f884e3 commit b72992e

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

flumine/markets/middleware.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,8 @@ def __init__(self, operation: str, directory: str):
306306
def __call__(self, market) -> None:
307307
pt = market.market_book.publish_time_epoch
308308
while True:
309+
if self._next is None:
310+
break
309311
for update in self._next:
310312
if update.market_id != market.market_id:
311313
continue
@@ -332,7 +334,13 @@ def add_market(self, market) -> None:
332334
# create sports data generator
333335
file_path = os.path.join(self.directory, market.market_id)
334336
self._gen = self._create_generator(file_path, self.operation, 123)()
335-
self._next = next(self._gen)
337+
try:
338+
self._next = next(self._gen)
339+
except StopIteration:
340+
logger.error(
341+
f"File {market.market_id} cannot be processed (data is not valid)"
342+
)
343+
self._next = None
336344

337345
def remove_market(self, market) -> None:
338346
# clear gens

tests/test_middleware.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -477,6 +477,15 @@ def test_call(self, mock_call_strategy_error_handling):
477477
]
478478
)
479479

480+
@mock.patch(
481+
"flumine.markets.middleware.call_strategy_error_handling", return_value=True
482+
)
483+
def test_call_none(self, mock_call_strategy_error_handling):
484+
self.middleware._next = None
485+
mock_market = mock.Mock(market_id="1.1")
486+
self.middleware(mock_market)
487+
mock_call_strategy_error_handling.assert_not_called()
488+
480489
@mock.patch(
481490
"flumine.markets.middleware.SimulatedSportsDataMiddleware._create_generator"
482491
)

0 commit comments

Comments
 (0)