diff --git a/tests/test-push-http b/tests/test-push-http --- a/tests/test-push-http +++ b/tests/test-push-http @@ -13,53 +13,44 @@ cd test2 echo a >> a hg ci -mb -d '0 0' +req() { + hg serve -p $HGPORT -d --pid-file=hg.pid -E errors.log + cat hg.pid >> $DAEMON_PIDS + hg --cwd ../test2 push http://localhost:$HGPORT/ | sed -e 's,:[0-9][0-9]*/,/,' + kill `cat hg.pid` + echo % serve errors + cat errors.log +} + 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` +req 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` +req 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` +req 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 +req cat ../urls +hg rollback 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` +req 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` +req diff --git a/tests/test-push-http.out b/tests/test-push-http.out --- a/tests/test-push-http.out +++ b/tests/test-push-http.out @@ -4,14 +4,17 @@ 1 files updated, 0 files merged, 0 files pushing to http://localhost/ searching for changes ssl required +% serve errors % expect authorization error pushing to http://localhost/ searching for changes push not authorized +% serve errors % expect authorization error: must have authorized user pushing to http://localhost/ searching for changes push not authorized +% serve errors % expect success pushing to http://localhost/ searching for changes @@ -19,13 +22,16 @@ adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files +% serve errors +changegroup hook: HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_URL=remote:http rolling back last transaction -changegroup hook: HG_NODE=ba677d0156c1196c1a699fa53f390dcfc3ce3872 HG_SOURCE=serve HG_URL=remote:http % expect authorization error: all users denied pushing to http://localhost/ searching for changes push not authorized +% serve errors % expect authorization error: some users denied, users must be authenticated pushing to http://localhost/ searching for changes push not authorized +% serve errors