Ejemplo n.º 1
0
def test_fiat_convert_find_price(mocker):
    api_mock = MagicMock(return_value={
        'price_usd': 12345.0,
        'price_eur': 13000.2
    })
    mocker.patch('freqtrade.fiat_convert.Market.ticker', api_mock)
    fiat_convert = CryptoToFiatConverter()

    with pytest.raises(ValueError, match=r'The fiat ABC is not supported.'):
        fiat_convert._find_price(crypto_symbol='BTC', fiat_symbol='ABC')

    with pytest.raises(ValueError,
                       match=r'The crypto symbol XRP is not supported.'):
        fiat_convert.get_price(crypto_symbol='XRP', fiat_symbol='USD')

    mocker.patch('freqtrade.fiat_convert.CryptoToFiatConverter._find_price',
                 return_value=12345.0)
    assert fiat_convert.get_price(crypto_symbol='BTC',
                                  fiat_symbol='USD') == 12345.0
    assert fiat_convert.get_price(crypto_symbol='btc',
                                  fiat_symbol='usd') == 12345.0

    mocker.patch('freqtrade.fiat_convert.CryptoToFiatConverter._find_price',
                 return_value=13000.2)
    assert fiat_convert.get_price(crypto_symbol='BTC',
                                  fiat_symbol='EUR') == 13000.2
Ejemplo n.º 2
0
def test_fiat_convert_without_network(mocker):
    pymarketcap = MagicMock(side_effect=ImportError('Oh boy, you have no network!'))
    mocker.patch('freqtrade.fiat_convert.Pymarketcap', pymarketcap)

    fiat_convert = CryptoToFiatConverter()
    assert fiat_convert._coinmarketcap is None
    assert fiat_convert._find_price(crypto_symbol='BTC', fiat_symbol='USD') == 0.0
Ejemplo n.º 3
0
def test_fiat_convert_find_price(mocker):
    api_mock = MagicMock(return_value={
        'price_usd': 12345.0,
        'price_eur': 13000.2
    })
    mocker.patch('freqtrade.fiat_convert.Pymarketcap.ticker', api_mock)
    fiat_convert = CryptoToFiatConverter()

    with pytest.raises(ValueError, match=r'The fiat ABC is not supported.'):
        fiat_convert._find_price(crypto_symbol='BTC', fiat_symbol='ABC')

    mocker.patch('freqtrade.fiat_convert.CryptoToFiatConverter._find_price', return_value=12345.0)
    assert fiat_convert.get_price(crypto_symbol='BTC', fiat_symbol='USD') == 12345.0
    assert fiat_convert.get_price(crypto_symbol='btc', fiat_symbol='usd') == 12345.0

    mocker.patch('freqtrade.fiat_convert.CryptoToFiatConverter._find_price', return_value=13000.2)
    assert fiat_convert.get_price(crypto_symbol='BTC', fiat_symbol='EUR') == 13000.2
Ejemplo n.º 4
0
def test_fiat_convert_unsupported_crypto(mocker, caplog):
    mocker.patch('freqtrade.fiat_convert.CryptoToFiatConverter._cryptomap',
                 return_value=[])
    patch_coinmarketcap(mocker)
    fiat_convert = CryptoToFiatConverter()
    assert fiat_convert._find_price(crypto_symbol='CRYPTO_123',
                                    fiat_symbol='EUR') == 0.0
    assert log_has('unsupported crypto-symbol CRYPTO_123 - returning 0.0',
                   caplog.record_tuples)
Ejemplo n.º 5
0
def test_fiat_convert_without_network(mocker):
    pymarketcap = MagicMock(
        side_effect=ImportError('Oh boy, you have no network!'))
    mocker.patch('freqtrade.fiat_convert.Pymarketcap', pymarketcap)

    fiat_convert = CryptoToFiatConverter()
    assert fiat_convert._coinmarketcap is None
    assert fiat_convert._find_price(crypto_symbol='BTC',
                                    fiat_symbol='USD') == 0.0
Ejemplo n.º 6
0
def test_fiat_convert_without_network():
    # Because CryptoToFiatConverter is a Singleton we reset the value of _coinmarketcap

    fiat_convert = CryptoToFiatConverter()

    CryptoToFiatConverter._coinmarketcap = None

    assert fiat_convert._coinmarketcap is None
    assert fiat_convert._find_price(crypto_symbol='BTC',
                                    fiat_symbol='USD') == 0.0
Ejemplo n.º 7
0
def test_fiat_convert_find_price(mocker):
    patch_coinmarketcap(mocker)

    fiat_convert = CryptoToFiatConverter()

    with pytest.raises(ValueError, match=r'The fiat ABC is not supported.'):
        fiat_convert._find_price(crypto_symbol='BTC', fiat_symbol='ABC')

    assert fiat_convert.get_price(crypto_symbol='XRP',
                                  fiat_symbol='USD') == 0.0

    mocker.patch('freqtrade.fiat_convert.CryptoToFiatConverter._find_price',
                 return_value=12345.0)
    assert fiat_convert.get_price(crypto_symbol='BTC',
                                  fiat_symbol='USD') == 12345.0
    assert fiat_convert.get_price(crypto_symbol='btc',
                                  fiat_symbol='usd') == 12345.0

    mocker.patch('freqtrade.fiat_convert.CryptoToFiatConverter._find_price',
                 return_value=13000.2)
    assert fiat_convert.get_price(crypto_symbol='BTC',
                                  fiat_symbol='EUR') == 13000.2