Fixed time format for schedule and update_funding_fees conf is mocked better

This commit is contained in:
Sam Germain 2021-10-05 01:42:46 -06:00
parent 6e1e1e00c2
commit 29e582c6d9
2 changed files with 13 additions and 6 deletions

View File

@ -4,7 +4,7 @@ Freqtrade is the main module of this bot. It contains the class Freqtrade()
import copy
import logging
import traceback
from datetime import datetime, timezone
from datetime import datetime, time, timezone
from math import isclose
from threading import Lock
from typing import Any, Dict, List, Optional
@ -112,7 +112,7 @@ class FreqtradeBot(LoggingMixin):
if self.trading_mode == TradingMode.FUTURES:
for time_slot in self.exchange.funding_fee_times:
schedule.every().day.at(time_slot).do(self.update_funding_fees())
schedule.every().day.at(str(time(time_slot))).do(self.update_funding_fees)
self.wallets.update()
def notify_status(self, msg: str) -> None:
@ -195,6 +195,9 @@ class FreqtradeBot(LoggingMixin):
if self.get_free_open_trades():
self.enter_positions()
if self.trading_mode == TradingMode.FUTURES:
schedule.run_pending()
Trade.commit()
def process_stopped(self) -> None:

View File

@ -7,6 +7,7 @@ from copy import deepcopy
from math import isclose
from unittest.mock import ANY, MagicMock, PropertyMock
import time_machine
import schedule
import arrow
import pytest
@ -4284,15 +4285,17 @@ def test_get_valid_price(mocker, default_conf_usdt) -> None:
@pytest.mark.parametrize('exchange,trading_mode,calls', [
("ftx", TradingMode.SPOT, 0),
("ftx", TradingMode.MARGIN, 0),
("binance", TradingMode.FUTURES, 1),
("kraken", TradingMode.FUTURES, 2),
("ftx", TradingMode.FUTURES, 8),
("binance", TradingMode.FUTURES, 2),
("kraken", TradingMode.FUTURES, 3),
("ftx", TradingMode.FUTURES, 9),
])
def test_update_funding_fees(mocker, default_conf, exchange, trading_mode, calls):
patch_RPCManager(mocker)
patch_exchange(mocker)
patch_exchange(mocker, id=exchange)
mocker.patch('freqtrade.freqtradebot.FreqtradeBot.update_funding_fees', return_value=True)
default_conf['trading_mode'] = trading_mode
default_conf['collateral'] = 'isolated'
freqtrade = get_patched_freqtradebot(mocker, default_conf)
with time_machine.travel("2021-09-01 00:00:00 +00:00") as t:
@ -4314,5 +4317,6 @@ def test_update_funding_fees(mocker, default_conf, exchange, trading_mode, calls
# )
t.move_to("2021-09-01 08:00:00 +00:00")
schedule.run_pending()
assert freqtrade.update_funding_fees.call_count == calls