sapling/tests/test-extension
Mads Kiilerich 6e4fb4100f tests: Skip tests if they will fail because of outer repo
For different reasons these tests will fail if run in a tmpdir which is in a hg
repo.

The following three tests assumes no .hg in path dirs - I don't know how to
work around that:

* test-dispatch explicitly tests for no repo and expects "abort: There is no
Mercurial repository here (.hg not found)!"

* test-extension expects parentui to be None when not cd'ed to a repo dir

* test-globalopts tests that implicit -R works correctly - that could perhaps be
done from another repo instead of assuming no repo

The following two might be worth investigating further:

* test-convert-svn-sink fails for unknown reasons, starting with "abort:
unresolved merge conflicts (see hg resolve)"

* test-glog gets strange failures when testing "from outer space"
2008-11-27 00:57:31 +01:00

107 lines
2.2 KiB
Bash
Executable File

#!/bin/sh
# Test basic extension support
"$TESTDIR/hghave" no-outer-repo || exit 80
cat > foobar.py <<EOF
import os
from mercurial import commands
def uisetup(ui):
ui.write("uisetup called\\n")
ui.write("ui.parentui is%s None\\n" % (ui.parentui is not None
and "not" or ""))
def reposetup(ui, repo):
ui.write("reposetup called for %s\\n" % os.path.basename(repo.root))
ui.write("ui %s= repo.ui\\n" % (ui == repo.ui and "=" or "!"))
def foo(ui, *args, **kwargs):
ui.write("Foo\\n")
def bar(ui, *args, **kwargs):
ui.write("Bar\\n")
cmdtable = {
"foo": (foo, [], "hg foo"),
"bar": (bar, [], "hg bar"),
}
commands.norepo += ' bar'
EOF
abspath=`pwd`/foobar.py
mkdir barfoo
cp foobar.py barfoo/__init__.py
barfoopath=`pwd`/barfoo
hg init a
cd a
echo foo > file
hg add file
hg commit -m 'add file'
echo '[extensions]' >> $HGRCPATH
echo "foobar = $abspath" >> $HGRCPATH
hg foo
cd ..
hg clone a b
hg bar
echo 'foobar = !' >> $HGRCPATH
echo '% module/__init__.py-style'
echo "barfoo = $barfoopath" >> $HGRCPATH
cd a
hg foo
echo 'barfoo = !' >> $HGRCPATH
cd ..
cat > empty.py <<EOF
'''empty cmdtable
'''
cmdtable = {}
EOF
emptypath=`pwd`/empty.py
echo "empty = $emptypath" >> $HGRCPATH
hg help empty
echo 'empty = !' >> $HGRCPATH
cat > debugextension.py <<EOF
'''only debugcommands
'''
def debugfoobar(ui, repo, *args, **opts):
"yet another debug command"
pass
cmdtable = {"debugfoobar": (debugfoobar, (), "hg debugfoobar")}
EOF
debugpath=`pwd`/debugextension.py
echo "debugextension = $debugpath" >> $HGRCPATH
hg help debugextension
hg --debug help debugextension
echo 'debugextension = !' >> $HGRCPATH
echo % issue811
debugpath=`pwd`/debugissue811.py
cat > debugissue811.py <<EOF
'''show all loaded extensions
'''
from mercurial import extensions, commands
def debugextensions(ui):
"yet another debug command"
ui.write("%s\n" % '\n'.join([x for x, y in extensions.extensions()]))
cmdtable = {"debugextensions": (debugextensions, (), "hg debugextensions")}
commands.norepo += " debugextensions"
EOF
echo "debugissue811 = $debugpath" >> $HGRCPATH
echo "mq=" >> $HGRCPATH
echo "hgext.mq=" >> $HGRCPATH
echo "hgext/mq=" >> $HGRCPATH
echo % show extensions
hg debugextensions