frontend: report arguments errors with better detail

When reporting argument errors, show also a context -- what is processed,
what is the name of the command.
This commit is contained in:
Alexander Bokovoy 2013-09-26 16:44:37 +02:00 committed by Martin Kosek
parent 0b29bfde0d
commit 2d6c7e3adb
2 changed files with 3 additions and 2 deletions

View File

@ -869,7 +869,8 @@ class Command(HasParam):
for arg in args():
if optional and arg.required:
raise ValueError(
'%s: required argument after optional' % arg.name
'%s: required argument after optional in %s arguments %s' % (arg.name,
self.name, map(lambda x: x.param_spec, args()))
)
if multivalue:
raise ValueError(

View File

@ -280,7 +280,7 @@ class test_Command(ClassChecker):
# Test ValueError, required after optional:
e = raises(ValueError, self.get_instance, args=('arg1?', 'arg2'))
assert str(e) == 'arg2: required argument after optional'
assert str(e) == "arg2: required argument after optional in %s arguments ['arg1?', 'arg2']" % (self.get_instance().name)
# Test ValueError, scalar after multivalue:
e = raises(ValueError, self.get_instance, args=('arg1+', 'arg2'))