51 lines
2.9 KiB
Python
51 lines
2.9 KiB
Python
import os
|
|
import sys
|
|
|
|
root = os.path.dirname(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 -*-
|
|
|
|
from ccxt.base.precise import Precise # noqa E402
|
|
from ccxt.test.exchange.base import test_shared_methods # noqa E402
|
|
|
|
def test_liquidation(exchange, skipped_properties, method, entry, symbol):
|
|
format = {
|
|
'info': {},
|
|
'symbol': 'ETH/BTC',
|
|
'contracts': exchange.parse_number('1.234'),
|
|
'contractSize': exchange.parse_number('1.234'),
|
|
'price': exchange.parse_number('1.234'),
|
|
'baseValue': exchange.parse_number('1.234'),
|
|
'quoteValue': exchange.parse_number('1.234'),
|
|
'timestamp': 1502962946216,
|
|
'datetime': '2017-09-01T00:00:00',
|
|
}
|
|
# todo: atm, many exchanges fail, so temporarily decrease stict mode
|
|
empty_allowed_for = ['timestamp', 'datetime', 'quoteValue', 'baseValue', 'previousClose', 'price', 'contractSize', 'contracts']
|
|
test_shared_methods.assert_structure(exchange, skipped_properties, method, entry, format, empty_allowed_for)
|
|
test_shared_methods.assert_timestamp_and_datetime(exchange, skipped_properties, method, entry)
|
|
log_text = test_shared_methods.log_template(exchange, method, entry)
|
|
test_shared_methods.assert_greater(exchange, skipped_properties, method, entry, 'contracts', '0')
|
|
test_shared_methods.assert_greater(exchange, skipped_properties, method, entry, 'contractSize', '0')
|
|
test_shared_methods.assert_greater(exchange, skipped_properties, method, entry, 'price', '0')
|
|
test_shared_methods.assert_greater(exchange, skipped_properties, method, entry, 'baseValue', '0')
|
|
test_shared_methods.assert_greater(exchange, skipped_properties, method, entry, 'quoteValue', '0')
|
|
contracts = exchange.safe_string(entry, 'contracts')
|
|
contract_size = exchange.safe_string(entry, 'contractSize')
|
|
price = exchange.safe_string(entry, 'price')
|
|
base_value = exchange.safe_string(entry, 'baseValue')
|
|
if contracts and contract_size:
|
|
assert Precise.string_eq(base_value, Precise.string_mul(contracts, contract_size)), 'baseValue == contracts * contractSize' + log_text
|
|
if price:
|
|
assert Precise.string_eq(base_value, Precise.string_mul(Precise.string_mul(contracts, contract_size), price)), 'quoteValue == contracts * contractSize * price' + log_text
|
|
# if singular was called, then symbol needs to be asserted
|
|
if method == 'watchLiquidations' or method == 'fetchLiquidations':
|
|
test_shared_methods.assert_symbol(exchange, skipped_properties, method, entry, 'symbol', symbol)
|