Skip to content

Commit 2c1f293

Browse files
authored
Merge pull request #89 from benner/fix/message-file-utf8-encoding
fix(cli): read commit message file as UTF-8
2 parents d6ceee9 + 1f7d8d6 commit 2c1f293

2 files changed

Lines changed: 13 additions & 1 deletion

File tree

src/git_commit_guard/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -706,7 +706,7 @@ def _parse_args(): # noqa: PLR0915 Too many statements (59 > 50)
706706
message = ""
707707
elif args.message_file:
708708
rev = None
709-
message = _strip_comments(args.message_file.read_text().strip())
709+
message = _strip_comments(args.message_file.read_text(encoding="utf-8").strip())
710710
elif args.rev:
711711
rev = args.rev
712712
message = _strip_comments(_get_message(rev))

tests/test_git_commit_guard.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1260,6 +1260,18 @@ def test_from_message_file(self, tmp_path, capsys):
12601260
assert main() == 0
12611261
assert "all checks passed" in capsys.readouterr().out
12621262

1263+
def test_from_message_file_utf8_non_ascii(self, tmp_path):
1264+
f = tmp_path / "msg"
1265+
f.write_bytes(
1266+
"fix: handle non-ascii\n\nbody\n\n"
1267+
"Signed-off-by: Nerijus Bendžiūnas <a@b.com>".encode()
1268+
)
1269+
with patch(
1270+
"sys.argv",
1271+
["cg", "--message-file", str(f), "--disable", "signature"],
1272+
):
1273+
assert main() == 0
1274+
12631275
def test_from_stdin(self):
12641276
stdin = MagicMock()
12651277
stdin.isatty.return_value = False

0 commit comments

Comments
 (0)