Mercurial > hg
view tests/test-extension @ 9582:a25af3af941c
tests: add -k to test scripts matching keywords
argument is a space-separated list of keywords that are searched for
in the name and body of each test. This makes it easy to run only
tests related to tags, hgweb, revert, etc. (eg -k "tag hgweb revert").
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Mon, 12 Oct 2009 14:52:53 -0500 |
parents | 1c83938b6a8e |
children | c4f6c02e33c4 |
line wrap: on
line source
#!/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") 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 # check that extensions are loaded in phases cat > foo.py <<EOF import os name = os.path.basename(__file__).rsplit('.', 1)[0] print "1) %s imported" % name def uisetup(ui): print "2) %s uisetup" % name def extsetup(): print "3) %s extsetup" % name def reposetup(ui, repo): print "4) %s reposetup" % name EOF cp foo.py bar.py echo 'foo = foo.py' >> $HGRCPATH echo 'bar = bar.py' >> $HGRCPATH # command with no output, we just want to see the extensions loaded hg paths echo 'foo = !' >> $HGRCPATH echo 'bar = !' >> $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 def foo(ui, repo, *args, **opts): """yet another foo command This command has been DEPRECATED since forever. """ pass cmdtable = { "debugfoobar": (debugfoobar, (), "hg debugfoobar"), "foo": (foo, (), "hg foo") } EOF debugpath=`pwd`/debugextension.py echo "debugextension = $debugpath" >> $HGRCPATH echo "% hg help" hg help debugextension echo "% hg help --verbose" hg --verbose help debugextension echo "% hg help --debug" 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