view tests/test-mq-qpush-fail @ 11532:f3732ab1149f

setup.py: Adjustments to make setup.py run in py3k. In py3k, subprocess.Popen.communicate's output are bytes objects. String literals are Unicode objects. Thus, when a bytes object startswith method is called, with string literals, it fails. What this patch does is: * Convert the string (unicode in py3k) literals to bytes objects; * As "bytes" is not a builtin in python < 2.6, it defines a "b" helper function that merely returns its argument, as suggested by Antoine Pitrou.
author Renato Cunha <renatoc@gmail.com>
date Fri, 02 Jul 2010 16:21:34 -0300
parents 8cb81d75730c
children
line wrap: on
line source

#!/bin/sh

# Test that qpush cleans things up if it doesn't complete

echo "[extensions]" >> $HGRCPATH
echo "mq=" >> $HGRCPATH

hg init repo
cd repo

echo foo > foo
hg ci -Am 'add foo'

touch untracked-file
echo 'syntax: glob' > .hgignore
echo '.hgignore' >> .hgignore

hg qinit

echo '% test qpush on empty series'
hg qpush

hg qnew patch1
echo >> foo
hg qrefresh -m 'patch 1'

hg qnew patch2
echo bar > bar
hg add bar
hg qrefresh -m 'patch 2'

hg qnew --config 'mq.plain=true' bad-patch
echo >> foo
hg qrefresh

hg qpop -a

python -c 'print "\xe9"' > message
cat .hg/patches/bad-patch >> message
mv message .hg/patches/bad-patch

hg qpush -a && echo 'qpush succeded?!'

hg parents

echo '% bar should be gone; other unknown/ignored files should still be around'
hg status -A

echo '% preparing qpush of a missing patch'
hg qpop -a
hg qpush
rm .hg/patches/patch2
echo '% now we expect the push to fail, but it should NOT complain about patch1'
hg qpush

echo '% preparing qpush of missing patch with no patch applied'
hg qpop -a
rm .hg/patches/patch1
echo '% qpush should fail the same way as below'
hg qpush

true # happy ending