Brokermod check output fixed and tweaks to deribit Client.bars function
parent
8f338b334a
commit
54e989320d
|
@ -40,23 +40,31 @@ _watchlists_data_path = os.path.join(_config_dir, 'watchlists.json')
|
|||
|
||||
|
||||
@cli.command()
|
||||
@click.option('--loglevel', '-l', default='info', help='Logging level')
|
||||
@click.argument('broker', nargs=1, required=True)
|
||||
@click.pass_obj
|
||||
def brokercheck(config, loglevel, broker):
|
||||
def brokercheck(config, broker):
|
||||
'''
|
||||
Test broker apis for completeness.
|
||||
|
||||
'''
|
||||
log = get_console_log(loglevel)
|
||||
OK = '\033[92m'
|
||||
WARNING = '\033[93m'
|
||||
FAIL = '\033[91m'
|
||||
ENDC = '\033[0m'
|
||||
|
||||
def print_ok(s: str, **kwargs):
|
||||
print(OK + s + ENDC, **kwargs)
|
||||
|
||||
def print_error(s: str, **kwargs):
|
||||
print(FAIL + s + ENDC, **kwargs)
|
||||
|
||||
async def run_method(client, meth_name: str, **kwargs):
|
||||
log.info(f'checking client for method \'{meth_name}\'...')
|
||||
print(f'checking client for method \'{meth_name}\'...', end='', flush=True)
|
||||
method = getattr(client, meth_name, None)
|
||||
assert method
|
||||
log.info('found!, running...')
|
||||
print_ok('found!, running...', end='', flush=True)
|
||||
result = await method(**kwargs)
|
||||
log.info(f'done! result: {type(result)}')
|
||||
print_ok(f'done! result: {type(result)}')
|
||||
return result
|
||||
|
||||
async def run_test(broker_name: str):
|
||||
|
@ -65,13 +73,13 @@ def brokercheck(config, loglevel, broker):
|
|||
passed = 0
|
||||
failed = 0
|
||||
|
||||
log.info(f'getting client...')
|
||||
print(f'getting client...', end='', flush=True)
|
||||
if not hasattr(brokermod, 'get_client'):
|
||||
log.error('fail! no \'get_client\' context manager found.')
|
||||
print_error('fail! no \'get_client\' context manager found.')
|
||||
return
|
||||
|
||||
async with brokermod.get_client() as client:
|
||||
log.info(f'done! inside client context.')
|
||||
print_ok(f'done! inside client context.')
|
||||
|
||||
# check for methods present on brokermod
|
||||
method_list = [
|
||||
|
@ -83,13 +91,14 @@ def brokercheck(config, loglevel, broker):
|
|||
]
|
||||
|
||||
for method in method_list:
|
||||
log.info(
|
||||
f'checking brokermod for method \'{method}\'...')
|
||||
print(
|
||||
f'checking brokermod for method \'{method}\'...',
|
||||
end='', flush=True)
|
||||
if not hasattr(brokermod, method):
|
||||
log.error(f'fail! method \'{method}\' not found.')
|
||||
print_error(f'fail! method \'{method}\' not found.')
|
||||
failed += 1
|
||||
else:
|
||||
log.info('done!')
|
||||
print_ok('done!')
|
||||
passed += 1
|
||||
|
||||
total += 1
|
||||
|
@ -119,12 +128,12 @@ def brokercheck(config, loglevel, broker):
|
|||
passed += 1
|
||||
|
||||
except AssertionError:
|
||||
log.error(f'fail! method \'{method_name}\' not found.')
|
||||
print_error(f'fail! method \'{method_name}\' not found.')
|
||||
failed += 1
|
||||
|
||||
total += 1
|
||||
|
||||
log.info(f'total: {total}, passed: {passed}, failed: {failed}')
|
||||
print(f'total: {total}, passed: {passed}, failed: {failed}')
|
||||
|
||||
trio.run(run_test, broker)
|
||||
|
||||
|
|
|
@ -109,9 +109,12 @@ class KLinesResult(BaseModel):
|
|||
volume: List[float]
|
||||
|
||||
class KLines(BaseModel):
|
||||
id: int
|
||||
jsonrpc: str = '2.0'
|
||||
result: KLinesResult
|
||||
result: KLinesResult
|
||||
usIn: int
|
||||
usOut: int
|
||||
usDiff: int
|
||||
testnet: bool
|
||||
|
||||
|
||||
# convert datetime obj timestamp to unixtime in milliseconds
|
||||
|
@ -200,11 +203,13 @@ class Client:
|
|||
|
||||
async def bars(
|
||||
self,
|
||||
instrument: str,
|
||||
symbol: str,
|
||||
start_dt: Optional[datetime] = None,
|
||||
end_dt: Optional[datetime] = None,
|
||||
limit: int = 1000,
|
||||
as_np: bool = True,
|
||||
) -> dict:
|
||||
instrument = symbol
|
||||
|
||||
if end_dt is None:
|
||||
end_dt = pendulum.now('UTC')
|
||||
|
|
Loading…
Reference in New Issue