[PATCH STABLE] fancyopts: don't show a traceback on invalid integer values
Augie Fackler
raf at durin42.com
Mon Oct 8 16:44:09 UTC 2012
queued, thanks
On Oct 8, 2012, at 8:38 AM, Idan Kamara <idankk86 at gmail.com> wrote:
> # HG changeset patch
> # User Idan Kamara <idankk86 at gmail.com>
> # Date 1349703316 -7200
> # Branch stable
> # Node ID 6cd5ee6df3c463d2025cf17158c4ad8ca484d00f
> # Parent 67f7906491d804423d16cb151e7add017ca1138d
> fancyopts: don't show a traceback on invalid integer values
>
> diff --git a/mercurial/fancyopts.py b/mercurial/fancyopts.py
> --- a/mercurial/fancyopts.py
> +++ b/mercurial/fancyopts.py
> @@ -5,7 +5,8 @@
> # This software may be used and distributed according to the terms of the
> # GNU General Public License version 2 or any later version.
>
> -import getopt
> +import getopt, util
> +from i18n import _
>
> def gnugetopt(args, options, longoptions):
> """Parse options mostly like getopt.gnu_getopt.
> @@ -105,7 +106,11 @@
> if t is type(fancyopts):
> state[name] = defmap[name](val)
> elif t is type(1):
> - state[name] = int(val)
> + try:
> + state[name] = int(val)
> + except ValueError:
> + raise util.Abort(_('invalid value %r for option %s, '
> + 'expected int') % (val, opt))
> elif t is type(''):
> state[name] = val
> elif t is type([]):
> diff --git a/tests/test-import.t b/tests/test-import.t
> --- a/tests/test-import.t
> +++ b/tests/test-import.t
> @@ -602,6 +602,9 @@
> $ echo a > a
> $ hg ci -Am t
> adding a
> + $ hg import -p foo
> + abort: invalid value 'foo' for option -p, expected int
> + [255]
> $ hg import -p0 - << EOF
>> foobar
>> --- a Sat Apr 12 22:43:58 2008 -0400
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> http://selenic.com/mailman/listinfo/mercurial-devel
More information about the Mercurial-devel
mailing list