add
This commit is contained in:
64
ccxt/pro/test/Exchange/test_watch_tickers.py
Normal file
64
ccxt/pro/test/Exchange/test_watch_tickers.py
Normal file
@@ -0,0 +1,64 @@
|
||||
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 -*-
|
||||
|
||||
import asyncio
|
||||
from ccxt.base.errors import ArgumentsRequired # noqa E402
|
||||
from ccxt.test.exchange.base import test_ticker # noqa E402
|
||||
from ccxt.test.exchange.base import test_shared_methods # noqa E402
|
||||
|
||||
async def test_watch_tickers(exchange, skipped_properties, symbol):
|
||||
without_symbol = test_watch_tickers_helper(exchange, skipped_properties, None)
|
||||
with_symbol = test_watch_tickers_helper(exchange, skipped_properties, [symbol])
|
||||
await asyncio.gather(*[with_symbol, without_symbol])
|
||||
|
||||
|
||||
async def test_watch_tickers_helper(exchange, skipped_properties, arg_symbols, arg_params={}):
|
||||
method = 'watchTickers'
|
||||
now = exchange.milliseconds()
|
||||
ends = now + 15000
|
||||
while now < ends:
|
||||
response = None
|
||||
success = True
|
||||
should_return = False
|
||||
try:
|
||||
response = await exchange.watch_tickers(arg_symbols, arg_params)
|
||||
except Exception as e:
|
||||
# for some exchanges, specifically watchTickers method not subscribe
|
||||
# to "all tickers" itself, and it requires symbols to be set
|
||||
# so, in such case, if it's arguments-required exception, we don't
|
||||
# mark tests as failed, but just skip them
|
||||
if (isinstance(e, ArgumentsRequired)) and (arg_symbols is None or len(arg_symbols) == 0):
|
||||
# todo: provide random symbols to try
|
||||
# return;
|
||||
# return false;
|
||||
should_return = True
|
||||
elif not test_shared_methods.is_temporary_failure(e):
|
||||
raise e
|
||||
now = exchange.milliseconds()
|
||||
# continue;
|
||||
success = False
|
||||
if should_return:
|
||||
return False
|
||||
if success:
|
||||
assert isinstance(response, dict), exchange.id + ' ' + method + ' ' + exchange.json(arg_symbols) + ' must return an object. ' + exchange.json(response)
|
||||
values = list(response.values())
|
||||
checked_symbol = None
|
||||
if arg_symbols is not None and len(arg_symbols) == 1:
|
||||
checked_symbol = arg_symbols[0]
|
||||
test_shared_methods.assert_non_emtpy_array(exchange, skipped_properties, method, values, checked_symbol)
|
||||
for i in range(0, len(values)):
|
||||
ticker = values[i]
|
||||
test_ticker(exchange, skipped_properties, method, ticker, checked_symbol)
|
||||
now = exchange.milliseconds()
|
||||
return True
|
||||
Reference in New Issue
Block a user