From ae68d0203801b4159a4dd91a0a2465af68970a99 Mon Sep 17 00:00:00 2001 From: Matthias Date: Sun, 31 Dec 2023 09:53:57 +0100 Subject: [PATCH] Simplify test for kraken order creation --- tests/exchange/test_kraken.py | 46 ++++++----------------------------- 1 file changed, 8 insertions(+), 38 deletions(-) diff --git a/tests/exchange/test_kraken.py b/tests/exchange/test_kraken.py index 7db3eeeeb..94f808cf8 100644 --- a/tests/exchange/test_kraken.py +++ b/tests/exchange/test_kraken.py @@ -13,11 +13,13 @@ STOPLOSS_ORDERTYPE = 'stop-loss' STOPLOSS_LIMIT_ORDERTYPE = 'stop-loss-limit' -def test_buy_kraken_trading_agreement(default_conf, mocker): +@pytest.mark.parametrize("order_type,time_in_force,expected_params", [ + ('limit', 'ioc', {'timeInForce': 'IOC', 'trading_agreement': 'agree'}), + ('market', None, {'trading_agreement': 'agree'}) +]) +def test_kraken_trading_agreement(default_conf, mocker, order_type, time_in_force, expected_params): api_mock = MagicMock() - order_id = f'test_prod_buy_{randint(0, 10 ** 6)}' - order_type = 'limit' - time_in_force = 'ioc' + order_id = f'test_prod_{order_type}_{randint(0, 10 ** 6)}' api_mock.options = {} api_mock.create_order = MagicMock(return_value={ 'id': order_id, @@ -49,41 +51,9 @@ def test_buy_kraken_trading_agreement(default_conf, mocker): assert api_mock.create_order.call_args[0][1] == order_type assert api_mock.create_order.call_args[0][2] == 'buy' assert api_mock.create_order.call_args[0][3] == 1 - assert api_mock.create_order.call_args[0][4] == 200 - assert api_mock.create_order.call_args[0][5] == {'timeInForce': 'IOC', - 'trading_agreement': 'agree'} + assert api_mock.create_order.call_args[0][4] == (200 if order_type == 'limit' else None) - -def test_sell_kraken_trading_agreement(default_conf, mocker): - api_mock = MagicMock() - order_id = f'test_prod_sell_{randint(0, 10 ** 6)}' - order_type = 'market' - api_mock.options = {} - api_mock.create_order = MagicMock(return_value={ - 'id': order_id, - 'symbol': 'ETH/BTC', - 'info': { - 'foo': 'bar' - } - }) - default_conf['dry_run'] = False - - mocker.patch(f'{EXMS}.amount_to_precision', lambda s, x, y: y) - mocker.patch(f'{EXMS}.price_to_precision', lambda s, x, y: y) - exchange = get_patched_exchange(mocker, default_conf, api_mock, id="kraken") - - order = exchange.create_order(pair='ETH/BTC', ordertype=order_type, - side="sell", amount=1, rate=200, leverage=1.0) - - assert 'id' in order - assert 'info' in order - assert order['id'] == order_id - assert api_mock.create_order.call_args[0][0] == 'ETH/BTC' - assert api_mock.create_order.call_args[0][1] == order_type - assert api_mock.create_order.call_args[0][2] == 'sell' - assert api_mock.create_order.call_args[0][3] == 1 - assert api_mock.create_order.call_args[0][4] is None - assert api_mock.create_order.call_args[0][5] == {'trading_agreement': 'agree'} + assert api_mock.create_order.call_args[0][5] == expected_params def test_get_balances_prod(default_conf, mocker):