Adjust test to work against usdt values

This commit is contained in:
Matthias 2024-03-24 11:28:54 +01:00
parent 093fd48cf9
commit 2854186b14

View File

@ -494,9 +494,9 @@ def test_rpc_balance_handle_error(default_conf, mocker):
def test_rpc_balance_handle(default_conf_usdt, mocker, tickers): def test_rpc_balance_handle(default_conf_usdt, mocker, tickers):
mock_balance = { mock_balance = {
'BTC': { 'BTC': {
'free': 10.0, 'free': 0.01,
'total': 12.0, 'total': 0.012,
'used': 2.0, 'used': 0.002,
}, },
'ETH': { 'ETH': {
'free': 1.0, 'free': 1.0,
@ -504,8 +504,8 @@ def test_rpc_balance_handle(default_conf_usdt, mocker, tickers):
'used': 4.0, 'used': 4.0,
}, },
'USDT': { 'USDT': {
'free': 5.0, 'free': 50.0,
'total': 10.0, 'total': 100.0,
'used': 5.0, 'used': 5.0,
} }
} }
@ -519,10 +519,10 @@ def test_rpc_balance_handle(default_conf_usdt, mocker, tickers):
"maintenanceMargin": 0.0, "maintenanceMargin": 0.0,
"maintenanceMarginPercentage": 0.005, "maintenanceMarginPercentage": 0.005,
"entryPrice": 0.0, "entryPrice": 0.0,
"notional": 100.0, "notional": 10.0,
"leverage": 5.0, "leverage": 5.0,
"unrealizedPnl": 0.0, "unrealizedPnl": 0.0,
"contracts": 100.0, "contracts": 1.0,
"contractSize": 1, "contractSize": 1,
"marginRatio": None, "marginRatio": None,
"liquidationPrice": 0.0, "liquidationPrice": 0.0,
@ -536,9 +536,9 @@ def test_rpc_balance_handle(default_conf_usdt, mocker, tickers):
mocker.patch.multiple( mocker.patch.multiple(
'freqtrade.rpc.fiat_convert.CoinGeckoAPI', 'freqtrade.rpc.fiat_convert.CoinGeckoAPI',
get_price=MagicMock(return_value={'bitcoin': {'usd': 15000.0}}), get_price=MagicMock(return_value={'bitcoin': {'usd': 1.2}}),
) )
mocker.patch('freqtrade.rpc.rpc.CryptoToFiatConverter._find_price', return_value=15000.0) mocker.patch('freqtrade.rpc.rpc.CryptoToFiatConverter._find_price', return_value=1.2)
mocker.patch('freqtrade.rpc.telegram.Telegram', MagicMock()) mocker.patch('freqtrade.rpc.telegram.Telegram', MagicMock())
mocker.patch.multiple( mocker.patch.multiple(
EXMS, EXMS,
@ -559,76 +559,76 @@ def test_rpc_balance_handle(default_conf_usdt, mocker, tickers):
result = rpc._rpc_balance( result = rpc._rpc_balance(
default_conf_usdt['stake_currency'], default_conf_usdt['fiat_display_currency']) default_conf_usdt['stake_currency'], default_conf_usdt['fiat_display_currency'])
assert pytest.approx(result['total']) == 2824.83464
assert pytest.approx(result['value']) == 2824.83464 * 1.2
assert tickers.call_count == 1 assert tickers.call_count == 1
assert tickers.call_args_list[0][1]['cached'] is True assert tickers.call_args_list[0][1]['cached'] is True
assert 'USD' == result['symbol'] assert 'USD' == result['symbol']
assert result['currencies'] == [ assert result['currencies'] == [
{ {
'currency': 'BTC', 'currency': 'BTC',
'free': 10.0, 'free': 0.01,
'balance': 12.0, 'balance': 0.012,
'used': 2.0, 'used': 0.002,
'bot_owned': 9.9, # available stake - reducing by reserved amount 'bot_owned': 0,
'est_stake': 10.0, # In futures mode, "free" is used here. 'est_stake': 103.78464,
'est_stake_bot': 9.9, 'est_stake_bot': 0,
'stake': 'BTC', 'stake': 'USDT',
'is_position': False,
'leverage': 1.0,
'position': 0.0,
'side': 'long', 'side': 'long',
'is_bot_managed': True, 'leverage': 1,
'position': 0,
'is_bot_managed': False,
'is_position': False
}, },
{ {
'currency': 'ETH',
'free': 1.0, 'free': 1.0,
'balance': 5.0, 'balance': 5.0,
'currency': 'ETH',
'bot_owned': 0,
'est_stake': 0.30794,
'est_stake_bot': 0,
'used': 4.0, 'used': 4.0,
'stake': 'BTC',
'is_position': False,
'leverage': 1.0,
'position': 0.0,
'side': 'long',
'is_bot_managed': False,
},
{
'free': 5.0,
'balance': 10.0,
'currency': 'USDT',
'bot_owned': 0, 'bot_owned': 0,
'est_stake': 0.0011562404610161968, 'est_stake': 2651.05,
'est_stake_bot': 0, 'est_stake_bot': 0,
'used': 5.0, 'stake': 'USDT',
'stake': 'BTC',
'is_position': False,
'leverage': 1.0,
'position': 0.0,
'side': 'long', 'side': 'long',
'leverage': 1,
'position': 0,
'is_bot_managed': False, 'is_bot_managed': False,
'is_position': False
},
{
'currency': 'USDT',
'free': 50.0,
'balance': 100.0,
'used': 5.0,
'bot_owned': 49.5,
'est_stake': 50.0,
'est_stake_bot': 49.5,
'stake': 'USDT',
'side': 'long',
'leverage': 1,
'position': 0,
'is_bot_managed': True,
'is_position': False
}, },
{ {
'free': 0.0,
'balance': 0.0,
'currency': 'ETH/USDT:USDT', 'currency': 'ETH/USDT:USDT',
'free': 0,
'balance': 0,
'used': 0,
'position': 10.0,
'est_stake': 20, 'est_stake': 20,
'est_stake_bot': 20, 'est_stake_bot': 20,
'used': 0, 'stake': 'USDT',
'stake': 'BTC',
'is_position': True,
'leverage': 5.0, 'leverage': 5.0,
'position': 1000.0,
'side': 'short', 'side': 'short',
'is_bot_managed': True, 'is_bot_managed': True,
'is_position': True
} }
] ]
assert pytest.approx(result['total_bot']) == 29.9 assert pytest.approx(result['total_bot']) == 69.5
assert pytest.approx(result['total']) == 30.309096 assert pytest.approx(result['total']) == 2824.83464 # ETH stake is missing.
assert result['starting_capital'] == 10 assert result['starting_capital'] == 50
# Very high starting capital ratio, because the futures position really has the wrong unit. assert result['starting_capital_ratio'] == pytest.approx(0.3899999)
# TODO: improve this test (see comment above)
assert result['starting_capital_ratio'] == pytest.approx(1.98999999)
def test_rpc_start(mocker, default_conf) -> None: def test_rpc_start(mocker, default_conf) -> None: