fix: handle save_period_to_config errors, remove duplicate _MockIssue

- cli.py: wrap save_period_to_config in try/except to avoid
  unhandled traceback on disk full / permission denial (I2)
- test_cli.py: remove duplicate _MockIssue class definition (I3)
This commit is contained in:
Кокос Артем Николаевич
2026-07-10 12:37:46 +07:00
parent b0e353c565
commit 25425901b1
2 changed files with 8 additions and 12 deletions

View File

@@ -492,7 +492,14 @@ def main(argv: Optional[List[str]] = None) -> int:
from_str = from_date from_str = from_date
to_str = to_date to_str = to_date
try:
save_period_to_config(args.config_path, from_str, to_str, precision, dynamic) save_period_to_config(args.config_path, from_str, to_str, precision, dynamic)
except Exception as e:
print(
f"Не удалось сохранить период в конфиг: {e}",
file=sys.stderr,
)
return 1
print( print(
f"📌 Period committed [{from_str} -- {to_str}] → {args.config_path}", f"📌 Period committed [{from_str} -- {to_str}] → {args.config_path}",
file=sys.stderr, file=sys.stderr,

View File

@@ -159,17 +159,6 @@ def test_cli_verbose_and_debug_flags_accepted(mock_fetch):
assert code == 0 assert code == 0
class _MockIssue:
"""Простой mock Redmine Issue для CLI-тестов."""
def __init__(self, issue_id=1, subject="Task", project="Project", status="New"):
self.id = issue_id
self.subject = subject
self.project = project
self.status = status
self.fixed_version = None
@mock.patch.dict(os.environ, {}, clear=True) @mock.patch.dict(os.environ, {}, clear=True)
@mock.patch("redmine_reporter.cli.fetch_issues_with_spent_time") @mock.patch("redmine_reporter.cli.fetch_issues_with_spent_time")
def test_cli_url_and_api_key_override_env(mock_fetch): def test_cli_url_and_api_key_override_env(mock_fetch):