view tests/test-notify @ 8940:01ada7b1861d

ui.prompt: Show prompt and selection in non-interactive mode ui.prompt was completely silent in non-interactive mode, unless in verbose mode. It is fine that it chooses the default automatically, but it is confusing that the message and prompt shown interactively can't be found in scripted tests. The prompt and selection is now .write'ed instead of .note'ed.
author Mads Kiilerich <mads@kiilerich.com>
date Sun, 21 Jun 2009 03:13:38 +0200
parents 912bfef12ba6
children 3b65c3c3cc8d
line wrap: on
line source

#!/bin/sh

cat <<EOF >> $HGRCPATH
[extensions]
notify=

[hooks]
incoming.notify = python:hgext.notify.hook

[notify]
sources = pull
diffstat = False

[usersubs]
foo@bar = *

[reposubs]
* = baz
EOF

hg help notify
hg init a
echo a > a/a
echo % commit
hg --traceback --cwd a commit -Ama -d '0 0'

echo % clone
hg --traceback clone a b

echo a >> a/a
echo % commit
hg --traceback --cwd a commit -Amb -d '1 0'

# on Mac OS X 10.5 the tmp path is very long so would get stripped in the subject line
cat <<EOF >> $HGRCPATH
[notify]
maxsubject = 200
EOF

# the python call below wraps continuation lines, which appear on Mac OS X 10.5 because
# of the very long subject line
echo '% pull (minimal config)'
hg --traceback --cwd b pull ../a 2>&1 |
  python -c 'import sys,re; print re.sub("\n\t", " ", sys.stdin.read()),' |
  sed -e 's/\(Message-Id:\).*/\1/' \
  -e 's/changeset \([0-9a-f]* *\)in .*test-notif/changeset \1in test-notif/' \
  -e 's/^details: .*test-notify/details: test-notify/' \
  -e 's/^Date:.*/Date:/'

cat <<EOF >> $HGRCPATH
[notify]
config = $HGTMP/.notify.conf
domain = test.com
strip = 3
template = Subject: {desc|firstline|strip}\nFrom: {author}\nX-Test: foo\n\nchangeset {node|short} in {webroot}\ndescription:\n\t{desc|tabindent|strip}

[web]
baseurl = http://test/
EOF

echo % fail for config file is missing
hg --cwd b rollback
hg --cwd b pull ../a 2>&1 | grep 'error.*\.notify\.conf' > /dev/null && echo pull failed

touch "$HGTMP/.notify.conf"

echo % pull
hg --cwd b rollback
hg --traceback --cwd b pull ../a 2>&1 | sed -e 's/\(Message-Id:\).*/\1/' \
  -e 's/changeset \([0-9a-f]*\) in .*/changeset \1/' \
  -e 's/^Date:.*/Date:/'

cat << EOF >> $HGRCPATH
[hooks]
incoming.notify = python:hgext.notify.hook

[notify]
sources = pull
diffstat = True
EOF

echo % pull
hg --cwd b rollback
hg --traceback --cwd b pull ../a 2>&1 | sed -e 's/\(Message-Id:\).*/\1/' \
  -e 's/changeset \([0-9a-f]*\) in .*/changeset \1/' \
  -e 's/^Date:.*/Date:/'

echo % test merge
cd a
hg up -C 0
echo a >> a
hg ci -Am adda2 -d '2 0'
hg merge
hg ci -m merge -d '3 0'
cd ..

hg --traceback --cwd b pull ../a 2>&1 | sed -e 's/\(Message-Id:\).*/\1/' \
  -e 's/changeset \([0-9a-f]*\) in .*/changeset \1/' \
  -e 's/^Date:.*/Date:/'