From 2d6c7e3adb47787ba7c38c303fd1f528f7d52a13 Mon Sep 17 00:00:00 2001 From: Alexander Bokovoy Date: Thu, 26 Sep 2013 16:44:37 +0200 Subject: 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. --- ipalib/frontend.py | 3 ++- ipatests/test_ipalib/test_frontend.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/ipalib/frontend.py b/ipalib/frontend.py index cac3e3b3..f478ef09 100644 --- a/ipalib/frontend.py +++ b/ipalib/frontend.py @@ -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( diff --git a/ipatests/test_ipalib/test_frontend.py b/ipatests/test_ipalib/test_frontend.py index 310d7a53..ce943a7e 100644 --- a/ipatests/test_ipalib/test_frontend.py +++ b/ipatests/test_ipalib/test_frontend.py @@ -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')) -- cgit