diff --git a/cpp_linter_hooks/clang_format.py b/cpp_linter_hooks/clang_format.py index b7705ba..e5cf240 100644 --- a/cpp_linter_hooks/clang_format.py +++ b/cpp_linter_hooks/clang_format.py @@ -68,12 +68,12 @@ def _print_verbose_info(command: list, retval: int, output: str) -> None: def main() -> int: """Run clang-format as a command-line entry point.""" - retval, output = run_clang_format() # pragma: no cover + retval, output = run_clang_format() - if retval != 0 and output.strip(): # pragma: no cover + if retval != 0 and output.strip(): print(output) - return retval # pragma: no cover + return retval if __name__ == "__main__": diff --git a/tests/test_clang_format.py b/tests/test_clang_format.py index 00c52ac..dae5c2a 100644 --- a/tests/test_clang_format.py +++ b/tests/test_clang_format.py @@ -3,7 +3,7 @@ import pytest -from cpp_linter_hooks.clang_format import run_clang_format +from cpp_linter_hooks.clang_format import main, run_clang_format @pytest.mark.benchmark @@ -138,3 +138,22 @@ def test_run_clang_format_verbose_passes_version_diagnostics(): assert (ret, output) == (0, "") mock_resolve.assert_called_once_with("clang-format", "21", True) + + +def test_main_returns_success_without_output(monkeypatch, capsys): + monkeypatch.setattr( + "cpp_linter_hooks.clang_format.run_clang_format", lambda: (0, "") + ) + + assert main() == 0 + assert capsys.readouterr().out == "" + + +def test_main_prints_failure_output(monkeypatch, capsys): + monkeypatch.setattr( + "cpp_linter_hooks.clang_format.run_clang_format", + lambda: (1, "formatting failed"), + ) + + assert main() == 1 + assert capsys.readouterr().out == "formatting failed\n"