Compare commits
4 Commits
e6d68dd37d
...
e095c68f72
| Author | SHA1 | Date | |
|---|---|---|---|
| e095c68f72 | |||
| c718e8c6f5 | |||
| a07cc02fb0 | |||
| ecc33054af |
@@ -61,6 +61,7 @@ def main():
|
|||||||
setup_logger(verbose=False, log_file=LOG_FILE)
|
setup_logger(verbose=False, log_file=LOG_FILE)
|
||||||
logger = get_logger()
|
logger = get_logger()
|
||||||
|
|
||||||
|
try:
|
||||||
if registry.requires_config(args.command):
|
if registry.requires_config(args.command):
|
||||||
require_config(logger)
|
require_config(logger)
|
||||||
config = Configuration()
|
config = Configuration()
|
||||||
@@ -68,7 +69,6 @@ def main():
|
|||||||
verbose = config_data.get("verbose", False)
|
verbose = config_data.get("verbose", False)
|
||||||
setup_logger(verbose=verbose, log_file=LOG_FILE)
|
setup_logger(verbose=verbose, log_file=LOG_FILE)
|
||||||
|
|
||||||
try:
|
|
||||||
registry.execute(
|
registry.execute(
|
||||||
args.command, skip_confirmation=getattr(args, "yes", False))
|
args.command, skip_confirmation=getattr(args, "yes", False))
|
||||||
except (ValueError, Exception) as e:
|
except (ValueError, Exception) as e:
|
||||||
|
|||||||
@@ -94,7 +94,10 @@ def get_logger() -> logging.Logger:
|
|||||||
|
|
||||||
|
|
||||||
def handle_error(error: Exception, logger: logging.Logger, exit_on_error: bool = False) -> None:
|
def handle_error(error: Exception, logger: logging.Logger, exit_on_error: bool = False) -> None:
|
||||||
if isinstance(error, ValueError):
|
if isinstance(error, KeyError):
|
||||||
|
message = error.args[0] if error.args else str(error)
|
||||||
|
logger.error(f"{message}")
|
||||||
|
elif isinstance(error, ValueError):
|
||||||
logger.error(f"{error}")
|
logger.error(f"{error}")
|
||||||
else:
|
else:
|
||||||
logger.error(f"Unexpected error: {error}", exc_info=True)
|
logger.error(f"Unexpected error: {error}", exc_info=True)
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ def user_input(monkeypatch) -> Callable[[Iterable[str], Iterable[str]], None]:
|
|||||||
password_iter = iter(passwords)
|
password_iter = iter(passwords)
|
||||||
|
|
||||||
monkeypatch.setattr("builtins.input", lambda _prompt: next(input_iter))
|
monkeypatch.setattr("builtins.input", lambda _prompt: next(input_iter))
|
||||||
monkeypatch.setattr("getpass.getpass",
|
monkeypatch.setattr("skywipe.configure.getpass",
|
||||||
lambda _prompt: next(password_iter))
|
lambda _prompt: next(password_iter))
|
||||||
|
|
||||||
return _set
|
return _set
|
||||||
|
|||||||
@@ -50,9 +50,14 @@ def _setup_error_mocks(monkeypatch, calls, error_factory):
|
|||||||
monkeypatch.setattr(cli, "get_logger",
|
monkeypatch.setattr(cli, "get_logger",
|
||||||
lambda: logging.getLogger(TEST_LOGGER_NAME))
|
lambda: logging.getLogger(TEST_LOGGER_NAME))
|
||||||
|
|
||||||
|
def _format_error_message(error):
|
||||||
|
if isinstance(error, KeyError):
|
||||||
|
return error.args[0] if error.args else str(error)
|
||||||
|
return str(error)
|
||||||
|
|
||||||
def mock_handle_error(error, logger, exit_on_error=False):
|
def mock_handle_error(error, logger, exit_on_error=False):
|
||||||
calls["handle_error"] = (type(error).__name__,
|
calls["handle_error"] = (type(error).__name__,
|
||||||
str(error), exit_on_error)
|
_format_error_message(error), exit_on_error)
|
||||||
|
|
||||||
monkeypatch.setattr(cli, "handle_error", mock_handle_error)
|
monkeypatch.setattr(cli, "handle_error", mock_handle_error)
|
||||||
|
|
||||||
@@ -186,9 +191,14 @@ def test_main_handles_config_load_error(monkeypatch):
|
|||||||
def raise_config_error(self):
|
def raise_config_error(self):
|
||||||
raise RuntimeError("config error")
|
raise RuntimeError("config error")
|
||||||
|
|
||||||
|
def _format_error_message(error):
|
||||||
|
if isinstance(error, KeyError):
|
||||||
|
return error.args[0] if error.args else str(error)
|
||||||
|
return str(error)
|
||||||
|
|
||||||
def mock_handle_error(error, logger, exit_on_error=False):
|
def mock_handle_error(error, logger, exit_on_error=False):
|
||||||
calls["handle_error"] = (type(error).__name__,
|
calls["handle_error"] = (type(error).__name__,
|
||||||
str(error), exit_on_error)
|
_format_error_message(error), exit_on_error)
|
||||||
|
|
||||||
_setup_parser_mocks(monkeypatch)
|
_setup_parser_mocks(monkeypatch)
|
||||||
monkeypatch.setattr(cli.registry, "requires_config", lambda name: True)
|
monkeypatch.setattr(cli.registry, "requires_config", lambda name: True)
|
||||||
|
|||||||
Reference in New Issue
Block a user