Mercurial > hg
view tests/test-extension @ 10092:f1bf64abcb1b stable
doc/Makefile: Fix rst2html detection
Displaying the output from the failing call to "which" didn't prevent
make from doing stupid things later. We now only search for "rst2html"
and fallback to "rst2html.py". If neither name is found, make will
eventually abort when we try to use $(RST2HTML).
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Wed, 16 Dec 2009 23:59:50 +0100 |
parents | 4ce13d7c6b88 |
children | de1e7099d100 |
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 # check hgweb's load order echo '% hgweb.cgi' cat > hgweb.cgi <<EOF #!/usr/bin/env python from mercurial import demandimport; demandimport.enable() from mercurial.hgweb import hgweb from mercurial.hgweb import wsgicgi application = hgweb('.', 'test repo') wsgicgi.launch(application) EOF SCRIPT_NAME='/' SERVER_PORT='80' SERVER_NAME='localhost' python hgweb.cgi \ | grep '^[0-9]) ' # ignores HTML output 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