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:
@@ -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
|
||||||
|
|
||||||
save_period_to_config(args.config_path, from_str, to_str, precision, dynamic)
|
try:
|
||||||
|
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,
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
Reference in New Issue
Block a user