def info(ctx, all_info, user_, product_list, roi): vds = VdsApiBase(ctx.obj['user'], ctx.obj['passwd'], debug=False) if ctx.obj['environment'] is not None: vds.host = ctx.obj['environment'] if ctx.obj['impersonate']: vds.impersonate(ctx.obj['impersonate']) bv = vds.get_content(f'http://{vds.host}/api/v2/status/')['backend_version'] click.echo(f"backend version: {bv}") if not (user_ or product_list or roi): all_info = True if user_ or all_info: show = ['id', 'name', 'email', 'roles', 'login_count', 'last_login_at'] if vds.usr_dict['geojson_area_allowed']['type'] == 'Polygon': x, y = zip(*vds.usr_dict['geojson_area_allowed']['coordinates'][0]) else: x, y = None, None click.echo('\n######################### USER #########################\n') njump = 26 # Hosizontal outline position for key in show: click.echo(f'{key:>{njump}s} | {vds.usr_dict[key]} ') if x is not None and y is not None: click.echo(f'\n{"Area extent LON":>{njump}s} | {min(x)} {max(x)}') click.echo(f'{"Area extent LAT":>{njump}s} | {min(y)} {max(y)}') if product_list or all_info: head = '\n ## | # API name # | # Name # \n' click.echo('\n############################ PRODUCTS ############################' + head + '='*len(head)) for i, p in enumerate(vds.products): click.echo(f' {i:02d} | {p.api_name:35s} | {p.name} ') if roi or all_info: click.echo('\n######################### ROIS #########################') click.echo(vds.rois) click.echo() vds.logger.info(' ================== Finished ==================')
def test_host_setter(credentials): vds = VdsApiBase(credentials['user'], credentials['pw']) vds.host = 'staging' assert vds.host == 'staging.vandersat.com' with pytest.raises(ValueError): vds.host = 'nonexisting'