tests/test-push-http
author Jim Hague <jim.hague@acm.org>
Sun, 25 Nov 2007 11:49:34 +0100
changeset 5547 777996744942
parent 5386 8051549afb32
child 6167 f53b9a383476
permissions -rwxr-xr-x
patch: fix sort() comparator argument 'hg import' fails under Python 2.3. The name of the compare function parameter in the call to list.sort() is 'cmpfunc' in Python 2.3 and 'cmp' in Python 2.4+. Passing the compare function as a named parameter is therefore problematic.

#!/bin/sh

cp "$TESTDIR"/printenv.py .

hg init test
cd test
echo a > a
hg ci -Ama -d '0 0'

cd ..
hg clone test test2
cd test2
echo a >> a
hg ci -mb -d '0 0'

cd ../test

echo % expect ssl error
hg serve -p $HGPORT -d --pid-file=hg.pid
cat hg.pid >> $DAEMON_PIDS
hg --cwd ../test2 push http://localhost:$HGPORT/ | sed -e 's,:[0-9][0-9]*/,/,'
kill `cat hg.pid`

echo % expect authorization error
echo '[web]' > .hg/hgrc
echo 'push_ssl = false' >> .hg/hgrc
hg serve -p $HGPORT -d --pid-file=hg.pid
cat hg.pid >> $DAEMON_PIDS
hg --cwd ../test2 push http://localhost:$HGPORT/ | sed -e 's,:[0-9][0-9]*/,/,'
kill `cat hg.pid`

echo % expect authorization error: must have authorized user
echo 'allow_push = unperson' >> .hg/hgrc
hg serve -p $HGPORT -d --pid-file=hg.pid
cat hg.pid >> $DAEMON_PIDS
hg --cwd ../test2 push http://localhost:$HGPORT/ | sed -e 's,:[0-9][0-9]*/,/,'
kill `cat hg.pid`

echo % expect success
echo 'allow_push = *' >> .hg/hgrc
echo '[hooks]' >> .hg/hgrc
echo 'changegroup = python ../printenv.py changegroup 0 ../urls' >> .hg/hgrc
hg serve -p $HGPORT -d --pid-file=hg.pid
cat hg.pid >> $DAEMON_PIDS
hg --cwd ../test2 push http://localhost:$HGPORT/ | sed -e 's,:[0-9][0-9]*/,/,'
kill `cat hg.pid`
hg rollback

cat ../urls

echo % expect authorization error: all users denied
echo '[web]' > .hg/hgrc
echo 'push_ssl = false' >> .hg/hgrc
echo 'deny_push = *' >> .hg/hgrc
hg serve -p $HGPORT -d --pid-file=hg.pid
cat hg.pid >> $DAEMON_PIDS
hg --cwd ../test2 push http://localhost:$HGPORT/ | sed -e 's,:[0-9][0-9]*/,/,'
kill `cat hg.pid`

echo % expect authorization error: some users denied, users must be authenticated
echo 'deny_push = unperson' >> .hg/hgrc
hg serve -p $HGPORT -d --pid-file=hg.pid
cat hg.pid >> $DAEMON_PIDS
hg --cwd ../test2 push http://localhost:$HGPORT/ | sed -e 's,:[0-9][0-9]*/,/,'
kill `cat hg.pid`