diff --git a/tests/persistence/test_persistence.py b/tests/persistence/test_persistence.py index cb6066ab5..4aa3b1e96 100644 --- a/tests/persistence/test_persistence.py +++ b/tests/persistence/test_persistence.py @@ -2,7 +2,6 @@ from datetime import datetime, timedelta, timezone from types import FunctionType -import arrow import pytest from sqlalchemy import select @@ -10,7 +9,7 @@ from freqtrade.constants import CUSTOM_TAG_MAX_LENGTH, DATETIME_PRINT_FORMAT from freqtrade.enums import TradingMode from freqtrade.exceptions import DependencyException from freqtrade.persistence import LocalTrade, Order, Trade, init_db -from freqtrade.util.datetime_helpers import dt_now +from freqtrade.util import dt_now from tests.conftest import create_mock_trades, create_mock_trades_with_leverage, log_has, log_has_re @@ -1327,7 +1326,7 @@ def test_to_json(fee): amount_requested=123.0, fee_open=fee.return_value, fee_close=fee.return_value, - open_date=arrow.utcnow().shift(hours=-2).datetime, + open_date=dt_now() - timedelta(hours=2), open_rate=0.123, exchange='binance', enter_tag=None, @@ -1412,8 +1411,8 @@ def test_to_json(fee): amount_requested=101.0, fee_open=fee.return_value, fee_close=fee.return_value, - open_date=arrow.utcnow().shift(hours=-2).datetime, - close_date=arrow.utcnow().shift(hours=-1).datetime, + open_date=dt_now() - timedelta(hours=2), + close_date=dt_now() - timedelta(hours=1), open_rate=0.123, close_rate=0.125, enter_tag='buys_signal_001', @@ -1497,7 +1496,7 @@ def test_stoploss_reinitialization(default_conf, fee): pair='ADA/USDT', stake_amount=30.0, fee_open=fee.return_value, - open_date=arrow.utcnow().shift(hours=-2).datetime, + open_date=dt_now() - timedelta(hours=2), amount=30.0, fee_close=fee.return_value, exchange='binance', @@ -1558,7 +1557,7 @@ def test_stoploss_reinitialization_leverage(default_conf, fee): pair='ADA/USDT', stake_amount=30.0, fee_open=fee.return_value, - open_date=arrow.utcnow().shift(hours=-2).datetime, + open_date=dt_now() - timedelta(hours=2), amount=30.0, fee_close=fee.return_value, exchange='binance', @@ -1620,7 +1619,7 @@ def test_stoploss_reinitialization_short(default_conf, fee): pair='ADA/USDT', stake_amount=0.001, fee_open=fee.return_value, - open_date=arrow.utcnow().shift(hours=-2).datetime, + open_date=dt_now() - timedelta(hours=2), amount=10, fee_close=fee.return_value, exchange='binance', @@ -1679,7 +1678,7 @@ def test_update_fee(fee): pair='ADA/USDT', stake_amount=30.0, fee_open=fee.return_value, - open_date=arrow.utcnow().shift(hours=-2).datetime, + open_date=dt_now() - timedelta(hours=2), amount=30.0, fee_close=fee.return_value, exchange='binance', @@ -1718,7 +1717,7 @@ def test_fee_updated(fee): pair='ADA/USDT', stake_amount=30.0, fee_open=fee.return_value, - open_date=arrow.utcnow().shift(hours=-2).datetime, + open_date=dt_now() - timedelta(hours=2), amount=30.0, fee_close=fee.return_value, exchange='binance', @@ -2093,7 +2092,7 @@ def test_recalc_trade_from_orders(fee): trade = Trade( pair='ADA/USDT', stake_amount=o1_cost, - open_date=arrow.utcnow().shift(hours=-2).datetime, + open_date=dt_now() - timedelta(hours=2), amount=o1_amount, fee_open=fee.return_value, fee_close=fee.return_value, @@ -2168,8 +2167,8 @@ def test_recalc_trade_from_orders(fee): filled=o2_amount, remaining=0, cost=o2_cost, - order_date=arrow.utcnow().shift(hours=-1).datetime, - order_filled_date=arrow.utcnow().shift(hours=-1).datetime, + order_date=dt_now() - timedelta(hours=1), + order_filled_date=dt_now() - timedelta(hours=1), ) trade.orders.append(order2) trade.recalc_trade_from_orders() @@ -2202,8 +2201,8 @@ def test_recalc_trade_from_orders(fee): filled=o3_amount, remaining=0, cost=o3_cost, - order_date=arrow.utcnow().shift(hours=-1).datetime, - order_filled_date=arrow.utcnow().shift(hours=-1).datetime, + order_date=dt_now() - timedelta(hours=1), + order_filled_date=dt_now() - timedelta(hours=1), ) trade.orders.append(order3) trade.recalc_trade_from_orders() @@ -2258,7 +2257,7 @@ def test_recalc_trade_from_orders_ignores_bad_orders(fee, is_short): trade = Trade( pair='ADA/USDT', stake_amount=o1_cost, - open_date=arrow.utcnow().shift(hours=-2).datetime, + open_date=dt_now() - timedelta(hours=2), amount=o1_amount, fee_open=fee.return_value, fee_close=fee.return_value, @@ -2310,8 +2309,8 @@ def test_recalc_trade_from_orders_ignores_bad_orders(fee, is_short): filled=o1_amount, remaining=0, cost=o1_cost, - order_date=arrow.utcnow().shift(hours=-1).datetime, - order_filled_date=arrow.utcnow().shift(hours=-1).datetime, + order_date=dt_now() - timedelta(hours=1), + order_filled_date=dt_now() - timedelta(hours=1), ) trade.orders.append(order2) trade.recalc_trade_from_orders() @@ -2338,8 +2337,8 @@ def test_recalc_trade_from_orders_ignores_bad_orders(fee, is_short): filled=0, remaining=4, cost=5, - order_date=arrow.utcnow().shift(hours=-1).datetime, - order_filled_date=arrow.utcnow().shift(hours=-1).datetime, + order_date=dt_now() - timedelta(hours=1), + order_filled_date=dt_now() - timedelta(hours=1), ) trade.orders.append(order3) trade.recalc_trade_from_orders() @@ -2365,8 +2364,8 @@ def test_recalc_trade_from_orders_ignores_bad_orders(fee, is_short): filled=o1_amount, remaining=0, cost=o1_cost, - order_date=arrow.utcnow().shift(hours=-1).datetime, - order_filled_date=arrow.utcnow().shift(hours=-1).datetime, + order_date=dt_now() - timedelta(hours=1), + order_filled_date=dt_now() - timedelta(hours=1), ) trade.orders.append(order4) trade.recalc_trade_from_orders() @@ -2623,8 +2622,8 @@ def test_recalc_trade_from_orders_dca(data) -> None: filled=amount, remaining=0, cost=amount * price, - order_date=arrow.utcnow().shift(hours=-10 + idx).datetime, - order_filled_date=arrow.utcnow().shift(hours=-10 + idx).datetime, + order_date=dt_now() - timedelta(hours=10 + idx), + order_filled_date=dt_now() - timedelta(hours=10 + idx), ) trade.orders.append(order_obj) trade.recalc_trade_from_orders() diff --git a/tests/strategy/test_interface.py b/tests/strategy/test_interface.py index a7dde20d6..23d5e6ea3 100644 --- a/tests/strategy/test_interface.py +++ b/tests/strategy/test_interface.py @@ -331,14 +331,14 @@ def test_min_roi_reached(default_conf, fee) -> None: open_rate=1, ) - assert not strategy.min_roi_reached(trade, 0.02, arrow.utcnow().shift(minutes=-56).datetime) - assert strategy.min_roi_reached(trade, 0.12, arrow.utcnow().shift(minutes=-56).datetime) + assert not strategy.min_roi_reached(trade, 0.02, dt_now() - timedelta(minutes=56)) + assert strategy.min_roi_reached(trade, 0.12, dt_now() - timedelta(minutes=56)) - assert not strategy.min_roi_reached(trade, 0.04, arrow.utcnow().shift(minutes=-39).datetime) - assert strategy.min_roi_reached(trade, 0.06, arrow.utcnow().shift(minutes=-39).datetime) + assert not strategy.min_roi_reached(trade, 0.04, dt_now() - timedelta(minutes=39)) + assert strategy.min_roi_reached(trade, 0.06, dt_now() - timedelta(minutes=39)) - assert not strategy.min_roi_reached(trade, -0.01, arrow.utcnow().shift(minutes=-1).datetime) - assert strategy.min_roi_reached(trade, 0.02, arrow.utcnow().shift(minutes=-1).datetime) + assert not strategy.min_roi_reached(trade, -0.01, dt_now() - timedelta(minutes=1)) + assert strategy.min_roi_reached(trade, 0.02, dt_now() - timedelta(minutes=1)) def test_min_roi_reached2(default_conf, fee) -> None: @@ -362,25 +362,25 @@ def test_min_roi_reached2(default_conf, fee) -> None: pair='ETH/BTC', stake_amount=0.001, amount=5, - open_date=arrow.utcnow().shift(hours=-1).datetime, + open_date=dt_now() - timedelta(hours=1), fee_open=fee.return_value, fee_close=fee.return_value, exchange='binance', open_rate=1, ) - assert not strategy.min_roi_reached(trade, 0.02, arrow.utcnow().shift(minutes=-56).datetime) - assert strategy.min_roi_reached(trade, 0.12, arrow.utcnow().shift(minutes=-56).datetime) + assert not strategy.min_roi_reached(trade, 0.02, dt_now() - timedelta(minutes=56)) + assert strategy.min_roi_reached(trade, 0.12, dt_now() - timedelta(minutes=56)) - assert not strategy.min_roi_reached(trade, 0.04, arrow.utcnow().shift(minutes=-39).datetime) - assert strategy.min_roi_reached(trade, 0.071, arrow.utcnow().shift(minutes=-39).datetime) + assert not strategy.min_roi_reached(trade, 0.04, dt_now() - timedelta(minutes=39)) + assert strategy.min_roi_reached(trade, 0.071, dt_now() - timedelta(minutes=39)) - assert not strategy.min_roi_reached(trade, 0.04, arrow.utcnow().shift(minutes=-26).datetime) - assert strategy.min_roi_reached(trade, 0.06, arrow.utcnow().shift(minutes=-26).datetime) + assert not strategy.min_roi_reached(trade, 0.04, dt_now() - timedelta(minutes=26)) + assert strategy.min_roi_reached(trade, 0.06, dt_now() - timedelta(minutes=26)) # Should not trigger with 20% profit since after 55 minutes only 30% is active. - assert not strategy.min_roi_reached(trade, 0.20, arrow.utcnow().shift(minutes=-2).datetime) - assert strategy.min_roi_reached(trade, 0.31, arrow.utcnow().shift(minutes=-2).datetime) + assert not strategy.min_roi_reached(trade, 0.20, dt_now() - timedelta(minutes=2)) + assert strategy.min_roi_reached(trade, 0.31, dt_now() - timedelta(minutes=2)) def test_min_roi_reached3(default_conf, fee) -> None: @@ -396,25 +396,25 @@ def test_min_roi_reached3(default_conf, fee) -> None: pair='ETH/BTC', stake_amount=0.001, amount=5, - open_date=arrow.utcnow().shift(hours=-1).datetime, + open_date=dt_now() - timedelta(hours=1), fee_open=fee.return_value, fee_close=fee.return_value, exchange='binance', open_rate=1, ) - assert not strategy.min_roi_reached(trade, 0.02, arrow.utcnow().shift(minutes=-56).datetime) - assert not strategy.min_roi_reached(trade, 0.12, arrow.utcnow().shift(minutes=-56).datetime) + assert not strategy.min_roi_reached(trade, 0.02, dt_now() - timedelta(minutes=56)) + assert not strategy.min_roi_reached(trade, 0.12, dt_now() - timedelta(minutes=56)) - assert not strategy.min_roi_reached(trade, 0.04, arrow.utcnow().shift(minutes=-39).datetime) - assert strategy.min_roi_reached(trade, 0.071, arrow.utcnow().shift(minutes=-39).datetime) + assert not strategy.min_roi_reached(trade, 0.04, dt_now() - timedelta(minutes=39)) + assert strategy.min_roi_reached(trade, 0.071, dt_now() - timedelta(minutes=39)) - assert not strategy.min_roi_reached(trade, 0.04, arrow.utcnow().shift(minutes=-26).datetime) - assert strategy.min_roi_reached(trade, 0.06, arrow.utcnow().shift(minutes=-26).datetime) + assert not strategy.min_roi_reached(trade, 0.04, dt_now() - timedelta(minutes=26)) + assert strategy.min_roi_reached(trade, 0.06, dt_now() - timedelta(minutes=26)) # Should not trigger with 20% profit since after 55 minutes only 30% is active. - assert not strategy.min_roi_reached(trade, 0.20, arrow.utcnow().shift(minutes=-2).datetime) - assert strategy.min_roi_reached(trade, 0.31, arrow.utcnow().shift(minutes=-2).datetime) + assert not strategy.min_roi_reached(trade, 0.20, dt_now() - timedelta(minutes=2)) + assert strategy.min_roi_reached(trade, 0.31, dt_now() - timedelta(minutes=2)) @pytest.mark.parametrize( @@ -450,7 +450,7 @@ def test_ft_stoploss_reached(default_conf, fee, profit, adjusted, expected, liq, pair='ETH/BTC', stake_amount=0.01, amount=1, - open_date=arrow.utcnow().shift(hours=-1).datetime, + open_date=dt_now() - timedelta(hours=1), fee_open=fee.return_value, fee_close=fee.return_value, exchange='binance', @@ -499,7 +499,7 @@ def test_custom_exit(default_conf, fee, caplog) -> None: pair='ETH/BTC', stake_amount=0.01, amount=1, - open_date=arrow.utcnow().shift(hours=-1).datetime, + open_date=dt_now() - timedelta(hours=1), fee_open=fee.return_value, fee_close=fee.return_value, exchange='binance', @@ -548,7 +548,7 @@ def test_should_sell(default_conf, fee) -> None: pair='ETH/BTC', stake_amount=0.01, amount=1, - open_date=arrow.utcnow().shift(hours=-1).datetime, + open_date=dt_now() - timedelta(hours=1), fee_open=fee.return_value, fee_close=fee.return_value, exchange='binance',