138 lines
5.2 KiB
Python
138 lines
5.2 KiB
Python
import os
|
|
import sys
|
|
|
|
root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
|
|
sys.path.append(root)
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
# PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
|
|
# https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
|
|
|
|
# ----------------------------------------------------------------------------
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import ccxt # noqa: F402
|
|
from ccxt.base.precise import Precise # noqa E402
|
|
|
|
def precise_equal_str(exchange, result, key, expected):
|
|
return Precise.string_eq(exchange.safe_string(result, key), expected)
|
|
|
|
|
|
def test_safe_ticker():
|
|
exchange = ccxt.Exchange({
|
|
'id': 'sampleexchange',
|
|
})
|
|
# CASE 1 - by open
|
|
ticker1 = {
|
|
'open': 5,
|
|
'change': 1,
|
|
}
|
|
result1 = exchange.safe_ticker(ticker1)
|
|
assert precise_equal_str(exchange, result1, 'percentage', '20.0')
|
|
assert precise_equal_str(exchange, result1, 'average', '5.5')
|
|
assert precise_equal_str(exchange, result1, 'close', '6.0')
|
|
assert precise_equal_str(exchange, result1, 'last', '6.0')
|
|
# CASE 2 - by open
|
|
ticker2 = {
|
|
'open': 5,
|
|
'percentage': 20,
|
|
}
|
|
result2 = exchange.safe_ticker(ticker2)
|
|
assert precise_equal_str(exchange, result2, 'change', '1.0')
|
|
assert precise_equal_str(exchange, result2, 'average', '5.5')
|
|
assert precise_equal_str(exchange, result2, 'close', '6.0')
|
|
assert precise_equal_str(exchange, result2, 'last', '6.0')
|
|
# CASE 3 - by close
|
|
ticker3 = {
|
|
'close': 6,
|
|
'change': 1,
|
|
}
|
|
result3 = exchange.safe_ticker(ticker3)
|
|
assert precise_equal_str(exchange, result3, 'open', '5.0')
|
|
assert precise_equal_str(exchange, result3, 'percentage', '20.0')
|
|
assert precise_equal_str(exchange, result3, 'average', '5.5')
|
|
assert precise_equal_str(exchange, result3, 'last', '6.0')
|
|
# CASE 4 - by close
|
|
ticker4 = {
|
|
'close': 6,
|
|
'percentage': 20,
|
|
}
|
|
result4 = exchange.safe_ticker(ticker4)
|
|
assert precise_equal_str(exchange, result4, 'open', '5.0')
|
|
assert precise_equal_str(exchange, result4, 'change', '1.0')
|
|
assert precise_equal_str(exchange, result4, 'average', '5.5')
|
|
assert precise_equal_str(exchange, result4, 'last', '6.0')
|
|
# CASE 5 - by average
|
|
ticker5 = {
|
|
'average': 5.5,
|
|
'percentage': 20,
|
|
}
|
|
result5 = exchange.safe_ticker(ticker5)
|
|
assert precise_equal_str(exchange, result5, 'open', '5.0')
|
|
assert precise_equal_str(exchange, result5, 'change', '1.0')
|
|
assert precise_equal_str(exchange, result5, 'close', '6.0')
|
|
assert precise_equal_str(exchange, result5, 'last', '6.0')
|
|
# CASE 6
|
|
ticker6 = {
|
|
'average': 5.5,
|
|
'change': 1,
|
|
}
|
|
result6 = exchange.safe_ticker(ticker6)
|
|
assert precise_equal_str(exchange, result6, 'open', '5.0')
|
|
assert precise_equal_str(exchange, result6, 'percentage', '20.0')
|
|
assert precise_equal_str(exchange, result6, 'close', '6.0')
|
|
assert precise_equal_str(exchange, result6, 'last', '6.0')
|
|
# CASE 7 - by open and close
|
|
ticker7 = {
|
|
'open': 5,
|
|
'close': 6,
|
|
}
|
|
result7 = exchange.safe_ticker(ticker7)
|
|
assert precise_equal_str(exchange, result7, 'change', '1.0')
|
|
assert precise_equal_str(exchange, result7, 'percentage', '20.0')
|
|
assert precise_equal_str(exchange, result7, 'average', '5.5')
|
|
assert precise_equal_str(exchange, result7, 'last', '6.0')
|
|
# CASE 8 - full ticker
|
|
ticker8 = {
|
|
'open': 5,
|
|
'close': 6,
|
|
'last': 6,
|
|
'high': 6.5,
|
|
'low': 4.5,
|
|
'average': 5.5,
|
|
'bid': 5.9,
|
|
'bidVolume': 100,
|
|
'ask': 6.1,
|
|
'askVolume': 200,
|
|
'change': 1,
|
|
'percentage': 20,
|
|
'vwap': 5.75,
|
|
'baseVolume': 1000,
|
|
'quoteVolume': 5750,
|
|
'previousClose': 4.9,
|
|
'indexPrice': 5.8,
|
|
'markPrice': 5.9,
|
|
'info': {},
|
|
}
|
|
result8 = exchange.safe_ticker(ticker8)
|
|
assert precise_equal_str(exchange, result8, 'open', '5.0')
|
|
assert precise_equal_str(exchange, result8, 'high', '6.5')
|
|
assert precise_equal_str(exchange, result8, 'low', '4.5')
|
|
assert precise_equal_str(exchange, result8, 'close', '6.0')
|
|
assert precise_equal_str(exchange, result8, 'last', '6.0')
|
|
assert precise_equal_str(exchange, result8, 'change', '1.0')
|
|
assert precise_equal_str(exchange, result8, 'percentage', '20.0')
|
|
assert precise_equal_str(exchange, result8, 'average', '5.5')
|
|
assert precise_equal_str(exchange, result8, 'bid', '5.9')
|
|
assert precise_equal_str(exchange, result8, 'bidVolume', '100.0')
|
|
assert precise_equal_str(exchange, result8, 'ask', '6.1')
|
|
assert precise_equal_str(exchange, result8, 'askVolume', '200.0')
|
|
assert precise_equal_str(exchange, result8, 'vwap', '5.75')
|
|
assert precise_equal_str(exchange, result8, 'baseVolume', '1000.0')
|
|
assert precise_equal_str(exchange, result8, 'quoteVolume', '5750.0')
|
|
assert precise_equal_str(exchange, result8, 'previousClose', '4.9')
|
|
assert precise_equal_str(exchange, result8, 'indexPrice', '5.8')
|
|
assert precise_equal_str(exchange, result8, 'markPrice', '5.9')
|
|
assert result8['info'] is not None
|