Don't fail contract size repopulation if pair is no longer available

This commit is contained in:
Matthias 2022-10-17 09:54:58 +00:00
parent 08e684a3e8
commit c2914feb12
2 changed files with 7 additions and 4 deletions

View File

@ -412,9 +412,11 @@ class Exchange:
def get_contract_size(self, pair: str) -> float: def get_contract_size(self, pair: str) -> float:
if self.trading_mode == TradingMode.FUTURES: if self.trading_mode == TradingMode.FUTURES:
market = self.markets[pair] market = self.markets.get(pair, {})
contract_size: float = 1.0 contract_size: float = 1.0
if market['contractSize'] is not None: if not market:
return None
if market.get('contractSize') is not None:
# ccxt has contractSize in markets as string # ccxt has contractSize in markets as string
contract_size = float(market['contractSize']) contract_size = float(market['contractSize'])
return contract_size return contract_size

View File

@ -4341,9 +4341,10 @@ def test__fetch_and_calculate_funding_fees_datetime_called(
('XLTCUSDT', 1, 'spot'), ('XLTCUSDT', 1, 'spot'),
('LTC/USD', 1, 'futures'), ('LTC/USD', 1, 'futures'),
('XLTCUSDT', 0.01, 'futures'), ('XLTCUSDT', 0.01, 'futures'),
('ETH/USDT:USDT', 10, 'futures') ('ETH/USDT:USDT', 10, 'futures'),
('TORN/USDT:USDT', None, 'futures'), # Don't fail for unavailable pairs.
]) ])
def est__get_contract_size(mocker, default_conf, pair, expected_size, trading_mode): def test__get_contract_size(mocker, default_conf, pair, expected_size, trading_mode):
api_mock = MagicMock() api_mock = MagicMock()
default_conf['trading_mode'] = trading_mode default_conf['trading_mode'] = trading_mode
default_conf['margin_mode'] = 'isolated' default_conf['margin_mode'] = 'isolated'