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)
|
||||
logger = get_logger()
|
||||
|
||||
try:
|
||||
if registry.requires_config(args.command):
|
||||
require_config(logger)
|
||||
config = Configuration()
|
||||
@@ -68,7 +69,6 @@ def main():
|
||||
verbose = config_data.get("verbose", False)
|
||||
setup_logger(verbose=verbose, log_file=LOG_FILE)
|
||||
|
||||
try:
|
||||
registry.execute(
|
||||
args.command, skip_confirmation=getattr(args, "yes", False))
|
||||
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:
|
||||
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}")
|
||||
else:
|
||||
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)
|
||||
|
||||
monkeypatch.setattr("builtins.input", lambda _prompt: next(input_iter))
|
||||
monkeypatch.setattr("getpass.getpass",
|
||||
monkeypatch.setattr("skywipe.configure.getpass",
|
||||
lambda _prompt: next(password_iter))
|
||||
|
||||
return _set
|
||||
|
||||
@@ -50,9 +50,14 @@ def _setup_error_mocks(monkeypatch, calls, error_factory):
|
||||
monkeypatch.setattr(cli, "get_logger",
|
||||
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):
|
||||
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)
|
||||
|
||||
@@ -186,9 +191,14 @@ def test_main_handles_config_load_error(monkeypatch):
|
||||
def raise_config_error(self):
|
||||
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):
|
||||
calls["handle_error"] = (type(error).__name__,
|
||||
str(error), exit_on_error)
|
||||
_format_error_message(error), exit_on_error)
|
||||
|
||||
_setup_parser_mocks(monkeypatch)
|
||||
monkeypatch.setattr(cli.registry, "requires_config", lambda name: True)
|
||||
|
||||
Reference in New Issue
Block a user