sapling/eden/scm/tests/test-fb-hgext-checkmessagehook-t.py
Xavier Deguillard 299212da50 checkmessagehook: make it python3 compatible
Summary:
The commit message should already be a utf8 string. Make sure that when it is
read from a file, we decode it properly.

Reviewed By: sfilipco

Differential Revision: D19666371

fbshipit-source-id: ee24fe33b5aaf1ede54286979c9523cedd901b3a
2020-01-31 15:21:55 -08:00

40 lines
1.2 KiB
Python

# Copyright (c) Facebook, Inc. and its affiliates.
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
from __future__ import absolute_import
from testutil.dott import sh, testtmp # noqa: F401
sh % "cat" << r"""
[extensions]
checkmessagehook=
""" >> "$HGRCPATH"
# Build up a repo
sh % "hg init repo" == ""
sh % "cd repo"
sh % "touch a"
sh % 'hg commit -A -l "$TESTDIR/ctrlchar-msg.txt"' == r"""
adding a
non-printable characters in commit message
Line 5: 'This has a sneaky ctrl-A: \x01'
Line 6: 'And this has esc: \x1b'
transaction abort!
rollback completed
abort: pretxncommit.checkmessage hook failed
[255]"""
sh % 'hg commit -A -l "$TESTDIR/perfectlyok-msg.txt"' == "adding a"
sh % "hg log -r ." == r"""
changeset: 0:d9cf9881be7b
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: This commit message is perfectly OK, and has no sneaky control characters."""
# Try force adding a non-printable character
sh % "touch b"
sh % 'hg commit -A -l "$TESTDIR/ctrlchar-msg.txt" --config checkmessage.allownonprintable=True' == "adding b"