tests/test-help
author Renato Cunha <renatoc@gmail.com>
Tue, 03 Aug 2010 13:41:47 -0300
changeset 11747 40d5633889bb
parent 10446 a565a2445eb5
permissions -rwxr-xr-x
hgfixes: add a fixer to convert plain strings to bytestrings This patch implements a 2to3 fixer that converts all plain strings in a python source file to byte strings syntax. Example: foo = 'Normal string' would become foo = b'Normal string' The motivation behind this fixer can be found in http://selenic.com/pipermail/mercurial-devel/2010-June/022363.html or, in other words: the current hg source assumes that _most_ strings are "meant" to be byte sequences, so it makes sense to make the convertion implemented by this patch. As mentioned above, not all mercurial modules want to use strings as bytes, examples include i18n (which uses unicode), and demandimport (in py3k, module names are normal strings, thus unicode, and there's no need for a convertion). Therefore, these modules are blacklisted in the fixer. There are also a few functions that can take only unicode arguments, thus the convertion shouldn't be done for those.

#!/bin/sh

hg
hg -q
hg help
hg -q help

echo %% test short command list with verbose option
hg -v help shortlist | sed 's/[(]version [^)]*[)]/(version xxx)/'

hg add -h

echo %% verbose help for add
hg add -hv

echo %% test help option with version option
hg add -h --version | sed 's/[(]version [^)]*[)]/(version xxx)/'

hg add --skjdfks

echo %% test ambiguous command help
hg help ad

echo %% test command without options
hg help verify

hg help diff
hg help status
hg -q help status
hg help foo
hg skjdfks

cat > helpext.py <<EOF
import os
from mercurial import commands

def nohelp(ui, *args, **kwargs):
    pass

cmdtable = {
    "nohelp": (nohelp, [], "hg nohelp"),
}

commands.norepo += ' nohelp'
EOF
abspath=`pwd`/helpext.py

echo '[extensions]' >> $HGRCPATH
echo "helpext = $abspath" >> $HGRCPATH

echo %% test command with no help text
hg help nohelp

echo %% test that default list of commands omits extension commands
hg help

echo %% test list of commands with command with no help text
hg help helpext

echo %% test a help topic
hg help revs

exit 0