strengthened and fixed leverage_tier tests

This commit is contained in:
Sam Germain
2022-02-10 06:10:15 -06:00
parent a6043e6a85
commit 03b3756e4b
4 changed files with 140 additions and 54 deletions

View File

@@ -2,7 +2,7 @@ from unittest.mock import MagicMock, PropertyMock
import pytest
from freqtrade.exceptions import OperationalException
from freqtrade.exceptions import InvalidOrderException, OperationalException
from freqtrade.exchange import Gateio
from freqtrade.resolvers.exchange_resolver import ExchangeResolver
from tests.conftest import get_patched_exchange
@@ -31,12 +31,10 @@ def test_validate_order_types_gateio(default_conf, mocker):
ExchangeResolver.load_exchange('gateio', default_conf, True)
@pytest.mark.parametrize('pair,mm_ratio', [
("ETH/USDT:USDT", 0.005),
("ADA/USDT:USDT", 0.003),
])
def test_get_maintenance_ratio_and_amt_gateio(default_conf, mocker, pair, mm_ratio):
def test_get_maintenance_ratio_and_amt_gateio(default_conf, mocker):
api_mock = MagicMock()
default_conf['trading_mode'] = 'futures'
default_conf['margin_mode'] = 'isolated'
type(api_mock).has = PropertyMock(return_value={'fetchLeverageTiers': False})
exchange = get_patched_exchange(mocker, default_conf, api_mock, id="gateio")
mocker.patch(
@@ -59,7 +57,29 @@ def test_get_maintenance_ratio_and_amt_gateio(default_conf, mocker, pair, mm_rat
'id': 'ADA_USDT',
'symbol': 'ADA/USDT:USDT',
},
'DOGE/USDT:USDT': {
'taker': 0.0000075,
'maker': -0.0000025,
'maintenanceMarginRate': None,
'info': {},
'id': 'ADA_USDT',
'symbol': 'ADA/USDT:USDT',
},
}
)
)
assert exchange.get_maintenance_ratio_and_amt(pair) == (mm_ratio, None)
assert exchange.get_maintenance_ratio_and_amt("ETH/USDT:USDT") == (0.005, None)
assert exchange.get_maintenance_ratio_and_amt("ADA/USDT:USDT") == (0.003, None)
with pytest.raises(
InvalidOrderException,
match="Maintenance margin rate for DOGE/USDT:USDT is unavailable for Gateio",
):
exchange.get_maintenance_ratio_and_amt('DOGE/USDT:USDT')
with pytest.raises(
InvalidOrderException,
match="SHIB/USDT:USDT is not tradeable on Gateio futures",
):
exchange.get_maintenance_ratio_and_amt('SHIB/USDT:USDT')