Fix ask use logic for testing/CI
parent
6857713adf
commit
3a439fc99d
|
@ -528,6 +528,7 @@ def _token_from_user(conf: 'configparser.ConfigParser') -> None:
|
||||||
def get_config(
|
def get_config(
|
||||||
config_path: str = None,
|
config_path: str = None,
|
||||||
force_from_user: bool = False,
|
force_from_user: bool = False,
|
||||||
|
ask_user_on_failure: bool = False,
|
||||||
) -> "configparser.ConfigParser":
|
) -> "configparser.ConfigParser":
|
||||||
"""Load the broker config from disk.
|
"""Load the broker config from disk.
|
||||||
|
|
||||||
|
@ -539,11 +540,19 @@ def get_config(
|
||||||
"""
|
"""
|
||||||
log.debug("Reloading access config data")
|
log.debug("Reloading access config data")
|
||||||
conf, path = config.load(config_path)
|
conf, path = config.load(config_path)
|
||||||
if force_from_user or (
|
|
||||||
not conf.get('questrade') or not conf['questrade'].get('refresh_token')
|
# check if the current config has a token
|
||||||
):
|
section = conf.get('questrade')
|
||||||
|
has_token = section.get('refresh_token') if section else False
|
||||||
|
|
||||||
|
if force_from_user or ask_user_on_failure and not (section or has_token):
|
||||||
log.warn(f"Forcing manual token auth from user")
|
log.warn(f"Forcing manual token auth from user")
|
||||||
_token_from_user(conf)
|
_token_from_user(conf)
|
||||||
|
else:
|
||||||
|
if not section:
|
||||||
|
raise ValueError(f"No `questrade` section found in {path}")
|
||||||
|
if not has_token:
|
||||||
|
raise ValueError(f"No refresh token found in {path}")
|
||||||
|
|
||||||
return conf, path
|
return conf, path
|
||||||
|
|
||||||
|
@ -555,7 +564,7 @@ async def get_client(
|
||||||
) -> Client:
|
) -> Client:
|
||||||
"""Spawn a broker client for making requests to the API service.
|
"""Spawn a broker client for making requests to the API service.
|
||||||
"""
|
"""
|
||||||
conf, path = get_config(config_path)
|
conf, path = get_config(config_path, ask_user_on_failure=ask_user)
|
||||||
log.debug(f"Loaded config:\n{colorize_json(dict(conf['questrade']))}")
|
log.debug(f"Loaded config:\n{colorize_json(dict(conf['questrade']))}")
|
||||||
client = Client(conf)
|
client = Client(conf)
|
||||||
await client.ensure_access(ask_user=ask_user)
|
await client.ensure_access(ask_user=ask_user)
|
||||||
|
|
Loading…
Reference in New Issue