diff --git a/tests/rpc/test_rpc_apiserver.py b/tests/rpc/test_rpc_apiserver.py index 73722f253..ce770a997 100644 --- a/tests/rpc/test_rpc_apiserver.py +++ b/tests/rpc/test_rpc_apiserver.py @@ -36,6 +36,7 @@ from tests.conftest import ( EXMS, create_mock_trades, create_mock_trades_usdt, + generate_test_data, get_mock_coro, get_patched_freqtradebot, log_has, @@ -2057,6 +2058,65 @@ def test_api_pair_history(botclient, tmp_path, mocker): assert result["columns"] == ["date", "open", "high", "low", "close", "volume", "__date_ts"] +def test_api_pair_history_live_mode(botclient, tmp_path, mocker): + _ftbot, client = botclient + _ftbot.config["user_data_dir"] = tmp_path + _ftbot.config["runmode"] = RunMode.WEBSERVER + + mocker.patch("freqtrade.strategy.interface.IStrategy.load_freqAI_model") + # no strategy, live data + gho = mocker.patch( + "freqtrade.exchange.binance.Binance.get_historic_ohlcv", + return_value=generate_test_data("1h", 100), + ) + rc = client_post( + client, + f"{BASE_URI}/pair_history", + data={ + "pair": "UNITTEST/BTC", + "timeframe": "1h", + "timerange": "20240101-", + # "strategy": CURRENT_TEST_STRATEGY, + "columns": ["rsi", "fastd", "fastk"], + "live_mode": True, + }, + ) + + assert_response(rc, 200) + result = rc.json() + # 100 candles - as in the generate_test_data call above + assert result["length"] == 100 + assert len(result["data"]) == result["length"] + assert result["columns"] == ["date", "open", "high", "low", "close", "volume", "__date_ts"] + assert gho.call_count == 1 + + gho.reset_mock() + rc = client_post( + client, + f"{BASE_URI}/pair_history", + data={ + "pair": "UNITTEST/BTC", + "timeframe": "1h", + "timerange": "20240101-", + "strategy": CURRENT_TEST_STRATEGY, + "columns": ["rsi", "fastd", "fastk"], + "live_mode": True, + }, + ) + + assert_response(rc, 200) + result = rc.json() + # 80 candles - as in the generate_test_data call above - 20 startup candles + assert result["length"] == 100 - 20 + assert len(result["data"]) == result["length"] + + assert "rsi" in result["columns"] + assert "enter_long" in result["columns"] + assert "fastd" in result["columns"] + assert "date" in result["columns"] + assert gho.call_count == 1 + + def test_api_plot_config(botclient, mocker, tmp_path): ftbot, client = botclient ftbot.config["user_data_dir"] = tmp_path