diff --git a/redmine_reporter/cli.py b/redmine_reporter/cli.py index 38b4ca4..8520ca0 100644 --- a/redmine_reporter/cli.py +++ b/redmine_reporter/cli.py @@ -211,6 +211,10 @@ def main(argv: Optional[List[str]] = None) -> int: Config.set_redmine_url(args.url) Config.set_redmine_api_key(args.api_key) + # Автозагрузка YAML-конфига + yaml_path = args.config_path + Config.load_yaml(yaml_path) + # Настройка уровня логирования if args.debug: logging.basicConfig(level=logging.DEBUG, format="%(levelname)s: %(message)s") diff --git a/tests/test_cli.py b/tests/test_cli.py index 1cfdac3..37e4dc8 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -62,7 +62,7 @@ def test_cli_returns_zero_on_no_entries(mock_fetch): @mock.patch.dict(os.environ, {}, clear=True) def test_cli_config_error(): """Невалидный конфиг -- выход 1.""" - code = main(["--date", "2026-01-01--2026-01-31"]) + code = main(["--date", "2026-01-01--2026-01-31", "--config-path", "/nonexistent/config.yml"]) assert code == 1 @@ -393,3 +393,17 @@ class TestInitConfig: assert "redmine" in data assert data["redmine"]["url"] == "" assert data["redmine"]["api_key"] == "" + + +@mock.patch.dict(os.environ, {}, clear=True) +@mock.patch("redmine_reporter.cli.fetch_issues_with_spent_time") +def test_cli_autoloads_yaml_config(mock_fetch, tmp_path): + """CLI автоматически подгружает YAML-конфиг при запуске.""" + config_path = tmp_path / "config.yml" + config_path.write_text( + "redmine:\n url: https://yaml-redmine.example.com/\n api_key: yaml-token\n" + ) + + mock_fetch.return_value = None + code = main(["--date", "2026-01-01--2026-01-31", "--config-path", str(config_path)]) + assert code == 0