Parameterized test

This commit is contained in:
Kavinkumar 2022-03-08 08:24:57 +05:30 committed by GitHub
parent 4848c74098
commit a28f46ac14
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -4804,9 +4804,8 @@ def test_position_adjust2(mocker, default_conf_usdt, fee) -> None:
assert trade.is_open is False assert trade.is_open is False
def test_position_adjust3(mocker, default_conf_usdt, fee) -> None: @pytest.mark.parametrize('orders, profit', [
(
orders_list = [
( (
# side ampunt, price # side ampunt, price
('buy', 100, 10), ('buy', 100, 10),
@ -4814,7 +4813,8 @@ def test_position_adjust3(mocker, default_conf_usdt, fee) -> None:
('sell', 50, 12), ('sell', 50, 12),
('sell', 100, 20), ('sell', 100, 20),
('sell', 50, 5), ('sell', 50, 5),
), ), 336.625),
(
( (
('buy', 100, 3), ('buy', 100, 3),
('buy', 100, 7), ('buy', 100, 7),
@ -4822,16 +4822,17 @@ def test_position_adjust3(mocker, default_conf_usdt, fee) -> None:
('buy', 150, 15), ('buy', 150, 15),
('sell', 100, 19), ('sell', 100, 19),
('sell', 150, 23), ('sell', 150, 23),
) ), 3175.75),
] ])
profits = [336.625, 3175.75] def test_position_adjust3(mocker, default_conf_usdt, fee) -> None:
default_conf_usdt.update({ default_conf_usdt.update({
"position_adjustment_enable": True, "position_adjustment_enable": True,
"dry_run": False, "dry_run": False,
"stake_amount": 200.0, "stake_amount": 200.0,
"dry_run_wallet": 1000.0, "dry_run_wallet": 1000.0,
}) })
for idx, orders in enumerate(orders_list): if 1:
patch_RPCManager(mocker) patch_RPCManager(mocker)
patch_exchange(mocker) patch_exchange(mocker)
patch_wallet(mocker, free=10000) patch_wallet(mocker, free=10000)
@ -4868,8 +4869,8 @@ def test_position_adjust3(mocker, default_conf_usdt, fee) -> None:
'amount': amount, 'amount': amount,
'filled': amount, 'filled': amount,
'ft_is_open': False, 'ft_is_open': False,
'id': f'60{idx}{idx2}', 'id': f'60{idx2}',
'order_id': f'60{idx}{idx2}' 'order_id': f'60{idx2}'
} }
mocker.patch('freqtrade.exchange.Exchange.create_order', mocker.patch('freqtrade.exchange.Exchange.create_order',
MagicMock(return_value=closed_successful_order)) MagicMock(return_value=closed_successful_order))
@ -4895,12 +4896,12 @@ def test_position_adjust3(mocker, default_conf_usdt, fee) -> None:
# Make sure the closed order is found as the second order. # Make sure the closed order is found as the second order.
order_obj = trade.select_order(order[0], False) order_obj = trade.select_order(order[0], False)
assert order_obj.order_id == f'60{idx}{idx2}' assert order_obj.order_id == f'60{idx2}'
trade = Trade.query.first() trade = Trade.query.first()
assert trade assert trade
assert trade.open_order_id is None assert trade.open_order_id is None
assert trade.close_profit_abs == profits[idx] assert trade.close_profit_abs == profit
assert trade.is_open is False assert trade.is_open is False