Update tests related to whitelist
This commit is contained in:
parent
0c8ecf2b1f
commit
fef8a4c978
@ -371,15 +371,145 @@ def ticker_history_without_bv():
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def tickers():
|
||||||
|
return MagicMock(return_value={
|
||||||
|
'ETH/BTC': {
|
||||||
|
'symbol': 'ETH/BTC',
|
||||||
|
'timestamp': 1522014806207,
|
||||||
|
'datetime': '2018-03-25T21:53:26.207Z',
|
||||||
|
'high': 0.061697,
|
||||||
|
'low': 0.060531,
|
||||||
|
'bid': 0.061588,
|
||||||
|
'bidVolume': 3.321,
|
||||||
|
'ask': 0.061655,
|
||||||
|
'askVolume': 0.212,
|
||||||
|
'vwap': 0.06105296,
|
||||||
|
'open': 0.060809,
|
||||||
|
'close': 0.060761,
|
||||||
|
'first': None,
|
||||||
|
'last': 0.061588,
|
||||||
|
'change': 1.281,
|
||||||
|
'percentage': None,
|
||||||
|
'average': None,
|
||||||
|
'baseVolume': 111649.001,
|
||||||
|
'quoteVolume': 6816.50176926,
|
||||||
|
'info': {}
|
||||||
|
},
|
||||||
|
'TKN/BTC': {
|
||||||
|
'symbol': 'TKN/BTC',
|
||||||
|
'timestamp': 1522014806169,
|
||||||
|
'datetime': '2018-03-25T21:53:26.169Z',
|
||||||
|
'high': 0.01885,
|
||||||
|
'low': 0.018497,
|
||||||
|
'bid': 0.018799,
|
||||||
|
'bidVolume': 8.38,
|
||||||
|
'ask': 0.018802,
|
||||||
|
'askVolume': 15.0,
|
||||||
|
'vwap': 0.01869197,
|
||||||
|
'open': 0.018585,
|
||||||
|
'close': 0.018573,
|
||||||
|
'baseVolume': 81058.66,
|
||||||
|
'quoteVolume': 2247.48374509,
|
||||||
|
},
|
||||||
|
'BLK/BTC': {
|
||||||
|
'symbol': 'BLK/BTC',
|
||||||
|
'timestamp': 1522014806072,
|
||||||
|
'datetime': '2018-03-25T21:53:26.720Z',
|
||||||
|
'high': 0.007745,
|
||||||
|
'low': 0.007512,
|
||||||
|
'bid': 0.007729,
|
||||||
|
'bidVolume': 0.01,
|
||||||
|
'ask': 0.007743,
|
||||||
|
'askVolume': 21.37,
|
||||||
|
'vwap': 0.00761466,
|
||||||
|
'open': 0.007653,
|
||||||
|
'close': 0.007652,
|
||||||
|
'first': None,
|
||||||
|
'last': 0.007743,
|
||||||
|
'change': 1.176,
|
||||||
|
'percentage': None,
|
||||||
|
'average': None,
|
||||||
|
'baseVolume': 295152.26,
|
||||||
|
'quoteVolume': 1515.14631229,
|
||||||
|
'info': {}
|
||||||
|
},
|
||||||
|
'ETH/USDT': {
|
||||||
|
'symbol': 'ETH/USDT',
|
||||||
|
'timestamp': 1522014804118,
|
||||||
|
'datetime': '2018-03-25T21:53:24.118Z',
|
||||||
|
'high': 530.88,
|
||||||
|
'low': 512.0,
|
||||||
|
'bid': 529.73,
|
||||||
|
'bidVolume': 0.2,
|
||||||
|
'ask': 530.21,
|
||||||
|
'askVolume': 0.2464,
|
||||||
|
'vwap': 521.02438405,
|
||||||
|
'open': 527.27,
|
||||||
|
'close': 528.42,
|
||||||
|
'first': None,
|
||||||
|
'last': 530.21,
|
||||||
|
'change': 0.558,
|
||||||
|
'percentage': None,
|
||||||
|
'average': None,
|
||||||
|
'baseVolume': 72300.0659,
|
||||||
|
'quoteVolume': 37670097.3022171,
|
||||||
|
'info': {}
|
||||||
|
},
|
||||||
|
'TKN/USDT': {
|
||||||
|
'symbol': 'TKN/USDT',
|
||||||
|
'timestamp': 1522014806198,
|
||||||
|
'datetime': '2018-03-25T21:53:26.198Z',
|
||||||
|
'high': 8718.0,
|
||||||
|
'low': 8365.77,
|
||||||
|
'bid': 8603.64,
|
||||||
|
'bidVolume': 0.15846,
|
||||||
|
'ask': 8603.67,
|
||||||
|
'askVolume': 0.069147,
|
||||||
|
'vwap': 8536.35621697,
|
||||||
|
'open': 8680.0,
|
||||||
|
'close': 8680.0,
|
||||||
|
'first': None,
|
||||||
|
'last': 8603.67,
|
||||||
|
'change': -0.879,
|
||||||
|
'percentage': None,
|
||||||
|
'average': None,
|
||||||
|
'baseVolume': 30414.604298,
|
||||||
|
'quoteVolume': 259629896.48584127,
|
||||||
|
'info': {}
|
||||||
|
},
|
||||||
|
'BLK/USDT': {
|
||||||
|
'symbol': 'BLK/USDT',
|
||||||
|
'timestamp': 1522014806145,
|
||||||
|
'datetime': '2018-03-25T21:53:26.145Z',
|
||||||
|
'high': 66.95,
|
||||||
|
'low': 63.38,
|
||||||
|
'bid': 66.473,
|
||||||
|
'bidVolume': 4.968,
|
||||||
|
'ask': 66.54,
|
||||||
|
'askVolume': 2.704,
|
||||||
|
'vwap': 65.0526901,
|
||||||
|
'open': 66.43,
|
||||||
|
'close': 66.383,
|
||||||
|
'first': None,
|
||||||
|
'last': 66.5,
|
||||||
|
'change': 0.105,
|
||||||
|
'percentage': None,
|
||||||
|
'average': None,
|
||||||
|
'baseVolume': 294106.204,
|
||||||
|
'quoteVolume': 19132399.743954,
|
||||||
|
'info': {}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def result():
|
def result():
|
||||||
with open('freqtrade/tests/testdata/UNITTEST_BTC-1m.json') as data_file:
|
with open('freqtrade/tests/testdata/UNITTEST_BTC-1m.json') as data_file:
|
||||||
return Analyze.parse_ticker_dataframe(json.load(data_file))
|
return Analyze.parse_ticker_dataframe(json.load(data_file))
|
||||||
|
|
||||||
|
|
||||||
# FIX:
|
# FIX:
|
||||||
# Create an fixture/function
|
# Create an fixture/function
|
||||||
# that inserts a trade of some type and open-status
|
# that inserts a trade of some type and open-status
|
||||||
# return the open-order-id
|
# return the open-order-id
|
||||||
# See tests in rpc/main that could use this
|
# See tests in rpc/main that could use this
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
# pragma pylint: disable=missing-docstring,C0103,protected-access
|
# pragma pylint: disable=missing-docstring,C0103,protected-access
|
||||||
|
|
||||||
import freqtrade.tests.conftest as tt # test tools
|
import freqtrade.tests.conftest as tt # test tools
|
||||||
|
from unittest.mock import MagicMock
|
||||||
|
|
||||||
# whitelist, blacklist, filtering, all of that will
|
# whitelist, blacklist, filtering, all of that will
|
||||||
# eventually become some rules to run on a generic ACL engine
|
# eventually become some rules to run on a generic ACL engine
|
||||||
@ -54,13 +55,18 @@ def test_refresh_whitelist(mocker, markets):
|
|||||||
assert whitelist == refreshedwhitelist
|
assert whitelist == refreshedwhitelist
|
||||||
|
|
||||||
|
|
||||||
def test_refresh_whitelist_dynamic(mocker, markets):
|
def test_refresh_whitelist_dynamic(mocker, markets, tickers):
|
||||||
conf = whitelist_conf()
|
conf = whitelist_conf()
|
||||||
freqtradebot = tt.get_patched_freqtradebot(mocker, conf)
|
freqtradebot = tt.get_patched_freqtradebot(mocker, conf)
|
||||||
mocker.patch('freqtrade.freqtradebot.exchange.get_markets', markets)
|
mocker.patch.multiple(
|
||||||
|
'freqtrade.freqtradebot.exchange',
|
||||||
|
get_markets=markets,
|
||||||
|
get_tickers=tickers,
|
||||||
|
exchange_has=MagicMock(return_value=True)
|
||||||
|
)
|
||||||
|
|
||||||
# argument: use the whitelist dynamically by exchange-volume
|
# argument: use the whitelist dynamically by exchange-volume
|
||||||
whitelist = ['TKN/BTC', 'ETH/BTC']
|
whitelist = ['ETH/BTC', 'TKN/BTC']
|
||||||
|
|
||||||
refreshedwhitelist = freqtradebot._refresh_whitelist(
|
refreshedwhitelist = freqtradebot._refresh_whitelist(
|
||||||
freqtradebot._gen_pair_whitelist(conf['stake_currency'])
|
freqtradebot._gen_pair_whitelist(conf['stake_currency'])
|
||||||
|
@ -201,24 +201,25 @@ def test_throttle_with_assets(mocker, default_conf) -> None:
|
|||||||
assert result == -1
|
assert result == -1
|
||||||
|
|
||||||
|
|
||||||
def test_gen_pair_whitelist(mocker, default_conf, markets) -> None:
|
def test_gen_pair_whitelist(mocker, default_conf, tickers) -> None:
|
||||||
"""
|
"""
|
||||||
Test _gen_pair_whitelist() method
|
Test _gen_pair_whitelist() method
|
||||||
"""
|
"""
|
||||||
freqtrade = get_patched_freqtradebot(mocker, default_conf)
|
freqtrade = get_patched_freqtradebot(mocker, default_conf)
|
||||||
mocker.patch('freqtrade.freqtradebot.exchange.get_markets', markets)
|
mocker.patch('freqtrade.freqtradebot.exchange.get_tickers', tickers)
|
||||||
|
mocker.patch('freqtrade.freqtradebot.exchange.exchange_has', MagicMock(return_value=True))
|
||||||
|
|
||||||
# Test to retrieved BTC sorted on BaseVolume
|
# Test to retrieved BTC sorted on BaseVolume
|
||||||
whitelist = freqtrade._gen_pair_whitelist(base_currency='BTC')
|
whitelist = freqtrade._gen_pair_whitelist(base_currency='BTC')
|
||||||
assert whitelist == ['ZCL/BTC', 'ZEC/BTC', 'XZC/BTC', 'XWC/BTC']
|
assert whitelist == ['ETH/BTC', 'TKN/BTC', 'BLK/BTC']
|
||||||
|
|
||||||
# Test to retrieved BTC sorted on OpenBuyOrders
|
# Test to retrieve BTC sorted on bidVolume
|
||||||
whitelist = freqtrade._gen_pair_whitelist(base_currency='BTC', key='OpenBuyOrders')
|
whitelist = freqtrade._gen_pair_whitelist(base_currency='BTC', key='bidVolume')
|
||||||
assert whitelist == ['XWC/BTC', 'ZCL/BTC', 'ZEC/BTC', 'XZC/BTC']
|
assert whitelist == ['TKN/BTC', 'ETH/BTC', 'BLK/BTC']
|
||||||
|
|
||||||
# Test with USDT sorted on BaseVolume
|
# Test with USDT sorted on BaseVolume
|
||||||
whitelist = freqtrade._gen_pair_whitelist(base_currency='USDT')
|
whitelist = freqtrade._gen_pair_whitelist(base_currency='USDT')
|
||||||
assert whitelist == ['XRP/USDT', 'XVG/USDT', 'XMR/USDT', 'ZEC/USDT']
|
assert whitelist == ['TKN/USDT', 'ETH/USDT', 'BLK/USDT']
|
||||||
|
|
||||||
# Test with ETH (our fixture does not have ETH, but Bittrex returns them)
|
# Test with ETH (our fixture does not have ETH, but Bittrex returns them)
|
||||||
whitelist = freqtrade._gen_pair_whitelist(base_currency='ETH')
|
whitelist = freqtrade._gen_pair_whitelist(base_currency='ETH')
|
||||||
|
Loading…
Reference in New Issue
Block a user