From 3e2077044617ae5f40c1c42d9a2e2074c0aa7141 Mon Sep 17 00:00:00 2001 From: Matthias Date: Sun, 28 Apr 2024 10:40:54 +0200 Subject: [PATCH] Slightly change returned column scheme --- freqtrade/rpc/api_server/api_schemas.py | 2 +- freqtrade/rpc/rpc.py | 6 ++-- tests/rpc/test_rpc_apiserver.py | 42 ++++++++++++++----------- 3 files changed, 28 insertions(+), 22 deletions(-) diff --git a/freqtrade/rpc/api_server/api_schemas.py b/freqtrade/rpc/api_server/api_schemas.py index cd60b3d92..7b6d5a3f6 100644 --- a/freqtrade/rpc/api_server/api_schemas.py +++ b/freqtrade/rpc/api_server/api_schemas.py @@ -502,7 +502,7 @@ class PairHistory(BaseModel): timeframe: str timeframe_ms: int columns: List[str] - selected_columns: List[str] = [] + all_columns: List[str] = [] data: SerializeAsAny[List[Any]] length: int buy_signals: int diff --git a/freqtrade/rpc/rpc.py b/freqtrade/rpc/rpc.py index 7ab9f9413..ed99b46ac 100644 --- a/freqtrade/rpc/rpc.py +++ b/freqtrade/rpc/rpc.py @@ -1204,7 +1204,7 @@ class RPC: if has_content: if selected_cols: # Ensure OHLCV columns are always present - cols_set = set(DEFAULT_DATAFRAME_COLUMNS + selected_cols) + cols_set = set(DEFAULT_DATAFRAME_COLUMNS + list(signals.keys()) + selected_cols) df_cols = [col for col in dataframe_columns if col in cols_set] dataframe = dataframe.loc[:, df_cols] @@ -1231,8 +1231,8 @@ class RPC: 'timeframe': timeframe, 'timeframe_ms': timeframe_to_msecs(timeframe), 'strategy': strategy, - 'columns': dataframe_columns, - 'selected_columns': list(dataframe.columns), + 'all_columns': dataframe_columns, + 'columns': list(dataframe.columns), 'data': dataframe.values.tolist(), 'length': len(dataframe), 'buy_signals': signals['enter_long'], # Deprecated diff --git a/tests/rpc/test_rpc_apiserver.py b/tests/rpc/test_rpc_apiserver.py index 5b189371a..08144693c 100644 --- a/tests/rpc/test_rpc_apiserver.py +++ b/tests/rpc/test_rpc_apiserver.py @@ -1522,31 +1522,37 @@ def test_api_pair_candles(botclient, ohlcv_history): rc = client_get(client, f"{BASE_URI}/pair_candles?limit={amount}&pair=XRP%2FBTC&timeframe={timeframe}") assert_response(rc) - assert 'strategy' in rc.json() - assert rc.json()['strategy'] == CURRENT_TEST_STRATEGY - assert 'columns' in rc.json() - assert 'data_start_ts' in rc.json() - assert 'data_start' in rc.json() - assert 'data_stop' in rc.json() - assert 'data_stop_ts' in rc.json() - assert rc.json()['data_start'] == '2017-11-26 08:50:00+00:00' - assert rc.json()['data_start_ts'] == 1511686200000 - assert rc.json()['data_stop'] == '2017-11-26 09:00:00+00:00' - assert rc.json()['data_stop_ts'] == 1511686800000 - assert isinstance(rc.json()['columns'], list) - assert set(rc.json()['columns']) == { + resp = rc.json() + assert 'strategy' in resp + assert resp['strategy'] == CURRENT_TEST_STRATEGY + assert 'columns' in resp + assert 'data_start_ts' in resp + assert 'data_start' in resp + assert 'data_stop' in resp + assert 'data_stop_ts' in resp + assert resp['data_start'] == '2017-11-26 08:50:00+00:00' + assert resp['data_start_ts'] == 1511686200000 + assert resp['data_stop'] == '2017-11-26 09:00:00+00:00' + assert resp['data_stop_ts'] == 1511686800000 + assert isinstance(resp['columns'], list) + assert set(resp['columns']) == { 'date', 'open', 'high', 'low', 'close', 'volume', 'sma', 'enter_long', 'exit_long', 'enter_short', 'exit_short', '__date_ts', '_enter_long_signal_close', '_exit_long_signal_close', '_enter_short_signal_close', '_exit_short_signal_close' } - assert 'pair' in rc.json() - assert rc.json()['pair'] == 'XRP/BTC' + # All columns doesn't include the internal columns + assert set(resp['all_columns']) == { + 'date', 'open', 'high', 'low', 'close', 'volume', + 'sma', 'enter_long', 'exit_long', 'enter_short', 'exit_short' + } + assert 'pair' in resp + assert resp['pair'] == 'XRP/BTC' - assert 'data' in rc.json() - assert len(rc.json()['data']) == amount + assert 'data' in resp + assert len(resp['data']) == amount - assert (rc.json()['data'] == + assert (resp['data'] == [['2017-11-26T08:50:00Z', 8.794e-05, 8.948e-05, 8.794e-05, 8.88e-05, 0.0877869, None, 0, 0, 0, 0, 1511686200000, None, None, None, None], ['2017-11-26T08:55:00Z', 8.88e-05, 8.942e-05, 8.88e-05,