Add tests for Exchange.get_markets()
This commit is contained in:
parent
750dc8bf56
commit
8564affdf0
@ -22,6 +22,7 @@ from freqtrade import (DependencyException, InvalidOrderException,
|
|||||||
from freqtrade.data.converter import parse_ticker_dataframe
|
from freqtrade.data.converter import parse_ticker_dataframe
|
||||||
from freqtrade.misc import deep_merge_dicts
|
from freqtrade.misc import deep_merge_dicts
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
@ -510,6 +510,50 @@ def markets():
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
'info': {},
|
'info': {},
|
||||||
|
},
|
||||||
|
'LTC/USD': {
|
||||||
|
'id': 'USD-LTC',
|
||||||
|
'symbol': 'LTC/USD',
|
||||||
|
'base': 'LTC',
|
||||||
|
'quote': 'USD',
|
||||||
|
'active': True,
|
||||||
|
'precision': {
|
||||||
|
'amount': 8,
|
||||||
|
'price': 8
|
||||||
|
},
|
||||||
|
'limits': {
|
||||||
|
'amount': {
|
||||||
|
'min': 0.06646786,
|
||||||
|
'max': None
|
||||||
|
},
|
||||||
|
'price': {
|
||||||
|
'min': 1e-08,
|
||||||
|
'max': None
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'info': {},
|
||||||
|
},
|
||||||
|
'XLTCUSDT': {
|
||||||
|
'id': 'xLTCUSDT',
|
||||||
|
'symbol': 'XLTCUSDT',
|
||||||
|
'base': 'LTC',
|
||||||
|
'quote': 'USDT',
|
||||||
|
'active': True,
|
||||||
|
'precision': {
|
||||||
|
'amount': 8,
|
||||||
|
'price': 8
|
||||||
|
},
|
||||||
|
'limits': {
|
||||||
|
'amount': {
|
||||||
|
'min': 0.06646786,
|
||||||
|
'max': None
|
||||||
|
},
|
||||||
|
'price': {
|
||||||
|
'min': 1e-08,
|
||||||
|
'max': None
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'info': {},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1488,6 +1488,73 @@ def test_get_valid_pair_combination(default_conf, mocker, markets):
|
|||||||
ex.get_valid_pair_combination("NOPAIR", "ETH")
|
ex.get_valid_pair_combination("NOPAIR", "ETH")
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("base_currencies, quote_currencies, pairs_only, active_only,"
|
||||||
|
"expected_keys", [
|
||||||
|
# Testing markets (in conftest.py):
|
||||||
|
# 'BLK/BTC': 'active': True
|
||||||
|
# 'BTT/BTC': 'active': True
|
||||||
|
# 'ETH/BTC': 'active': True
|
||||||
|
# 'ETH/USDT': 'active': True
|
||||||
|
# 'LTC/BTC': 'active': False
|
||||||
|
# 'LTC/USD': 'active': True
|
||||||
|
# 'LTC/USDT': 'active': True
|
||||||
|
# 'NEO/BTC': 'active': False
|
||||||
|
# 'TKN/BTC': 'active' not set
|
||||||
|
# 'XLTCUSDT': 'active': True, not a pair
|
||||||
|
# 'XRP/BTC': 'active': False
|
||||||
|
# all markets
|
||||||
|
([], [], False, False,
|
||||||
|
['BLK/BTC', 'BTT/BTC', 'ETH/BTC', 'ETH/USDT', 'LTC/BTC', 'LTC/USD', 'LTC/USDT', 'NEO/BTC',
|
||||||
|
'TKN/BTC', 'XLTCUSDT', 'XRP/BTC']),
|
||||||
|
# active markets
|
||||||
|
([], [], False, True,
|
||||||
|
['BLK/BTC', 'BTT/BTC', 'ETH/BTC', 'ETH/USDT', 'LTC/USD', 'LTC/USDT', 'TKN/BTC', 'XLTCUSDT']),
|
||||||
|
# all pairs
|
||||||
|
([], [], True, False,
|
||||||
|
['BLK/BTC', 'BTT/BTC', 'ETH/BTC', 'ETH/USDT', 'LTC/BTC', 'LTC/USD', 'LTC/USDT', 'NEO/BTC',
|
||||||
|
'TKN/BTC', 'XRP/BTC']),
|
||||||
|
# active pairs
|
||||||
|
([], [], True, True,
|
||||||
|
['BLK/BTC', 'BTT/BTC', 'ETH/BTC', 'ETH/USDT', 'LTC/USD', 'LTC/USDT', 'TKN/BTC']),
|
||||||
|
# all markets, base=ETH, LTC
|
||||||
|
(['ETH', 'LTC'], [], False, False,
|
||||||
|
['ETH/BTC', 'ETH/USDT', 'LTC/BTC', 'LTC/USD', 'LTC/USDT', 'XLTCUSDT']),
|
||||||
|
# all markets, base=LTC
|
||||||
|
(['LTC'], [], False, False,
|
||||||
|
['LTC/BTC', 'LTC/USD', 'LTC/USDT', 'XLTCUSDT']),
|
||||||
|
# all markets, quote=USDT
|
||||||
|
([], ['USDT'], False, False,
|
||||||
|
['ETH/USDT', 'LTC/USDT', 'XLTCUSDT']),
|
||||||
|
# all markets, quote=USDT, USD
|
||||||
|
([], ['USDT', 'USD'], False, False,
|
||||||
|
['ETH/USDT', 'LTC/USD', 'LTC/USDT', 'XLTCUSDT']),
|
||||||
|
# all markets, base=LTC, quote=USDT
|
||||||
|
(['LTC'], ['USDT'], False, False,
|
||||||
|
['LTC/USDT', 'XLTCUSDT']),
|
||||||
|
# all pairs, base=LTC, quote=USDT
|
||||||
|
(['LTC'], ['USDT'], True, False,
|
||||||
|
['LTC/USDT']),
|
||||||
|
# all markets, base=LTC, quote=USDT, NONEXISTENT
|
||||||
|
(['LTC'], ['USDT', 'NONEXISTENT'], False, False,
|
||||||
|
['LTC/USDT', 'XLTCUSDT']),
|
||||||
|
# all markets, base=LTC, quote=NONEXISTENT
|
||||||
|
(['LTC'], ['NONEXISTENT'], False, False,
|
||||||
|
[]),
|
||||||
|
])
|
||||||
|
def test_get_markets(default_conf, mocker, markets,
|
||||||
|
base_currencies, quote_currencies, pairs_only, active_only,
|
||||||
|
expected_keys):
|
||||||
|
mocker.patch.multiple('freqtrade.exchange.Exchange',
|
||||||
|
_init_ccxt=MagicMock(return_value=MagicMock()),
|
||||||
|
_load_async_markets=MagicMock(),
|
||||||
|
validate_pairs=MagicMock(),
|
||||||
|
validate_timeframes=MagicMock(),
|
||||||
|
markets=PropertyMock(return_value=markets))
|
||||||
|
ex = Exchange(default_conf)
|
||||||
|
pairs = ex.get_markets(base_currencies, quote_currencies, pairs_only, active_only)
|
||||||
|
assert sorted(pairs.keys()) == sorted(expected_keys)
|
||||||
|
|
||||||
|
|
||||||
def test_timeframe_to_minutes():
|
def test_timeframe_to_minutes():
|
||||||
assert timeframe_to_minutes("5m") == 5
|
assert timeframe_to_minutes("5m") == 5
|
||||||
assert timeframe_to_minutes("10m") == 10
|
assert timeframe_to_minutes("10m") == 10
|
||||||
|
Loading…
Reference in New Issue
Block a user