Add tests for ordertype validation
This commit is contained in:
parent
2738c37845
commit
cf9e99b8e1
@ -1060,6 +1060,44 @@ def test_validate_ordertypes(default_conf, mocker):
|
|||||||
Exchange(default_conf)
|
Exchange(default_conf)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize('exchange_name,stopadv, expected', [
|
||||||
|
('binance', 'last', True),
|
||||||
|
('binance', 'mark', True),
|
||||||
|
('binance', 'index', False),
|
||||||
|
('bybit', 'last', True),
|
||||||
|
('bybit', 'mark', True),
|
||||||
|
('bybit', 'index', True),
|
||||||
|
# ('okx', 'last', True),
|
||||||
|
# ('okx', 'mark', True),
|
||||||
|
# ('okx', 'index', True),
|
||||||
|
])
|
||||||
|
def test_validate_ordertypes_stop_advanced(default_conf, mocker, exchange_name, stopadv, expected):
|
||||||
|
|
||||||
|
api_mock = MagicMock()
|
||||||
|
default_conf['trading_mode'] = TradingMode.FUTURES
|
||||||
|
default_conf['margin_mode'] = MarginMode.ISOLATED
|
||||||
|
type(api_mock).has = PropertyMock(return_value={'createMarketOrder': True})
|
||||||
|
mocker.patch('freqtrade.exchange.Exchange._init_ccxt', MagicMock(return_value=api_mock))
|
||||||
|
mocker.patch('freqtrade.exchange.Exchange._load_markets', MagicMock(return_value={}))
|
||||||
|
mocker.patch('freqtrade.exchange.Exchange.validate_pairs')
|
||||||
|
mocker.patch('freqtrade.exchange.Exchange.validate_timeframes')
|
||||||
|
mocker.patch('freqtrade.exchange.Exchange.validate_stakecurrency')
|
||||||
|
mocker.patch('freqtrade.exchange.Exchange.validate_pricing')
|
||||||
|
default_conf['order_types'] = {
|
||||||
|
'entry': 'limit',
|
||||||
|
'exit': 'limit',
|
||||||
|
'stoploss': 'limit',
|
||||||
|
'stoploss_on_exchange': True,
|
||||||
|
'stoploss_price_type': stopadv,
|
||||||
|
}
|
||||||
|
if expected:
|
||||||
|
ExchangeResolver.load_exchange(exchange_name, default_conf)
|
||||||
|
else:
|
||||||
|
with pytest.raises(OperationalException,
|
||||||
|
match=r'On exchange stoploss price type is not supported for .*'):
|
||||||
|
ExchangeResolver.load_exchange(exchange_name, default_conf)
|
||||||
|
|
||||||
|
|
||||||
def test_validate_order_types_not_in_config(default_conf, mocker):
|
def test_validate_order_types_not_in_config(default_conf, mocker):
|
||||||
api_mock = MagicMock()
|
api_mock = MagicMock()
|
||||||
mocker.patch('freqtrade.exchange.Exchange._init_ccxt', MagicMock(return_value=api_mock))
|
mocker.patch('freqtrade.exchange.Exchange._init_ccxt', MagicMock(return_value=api_mock))
|
||||||
|
Loading…
Reference in New Issue
Block a user