From 1235dfa7bf4b249eb6da8eab8d8a2c7b0eef98db Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Tue, 17 Apr 2012 12:42:35 -0400 Subject: Fail on unknown Command options When unknown keyword arguments are passed to a Command, raise an error instead of ignoring them. Options used when IPA calls its commands internally are listed in a new Command attribute called internal_options, and allowed. Previous patches (0b01751c, c45174d6, c5689e7f) made IPA not use unknown keyword arguments in its own commands and tests, but since that some violations were reintroduced in permission_find and tests. Fix those. Tests included; both a frontend unittest and a XML-RPC test via the ping plugin (which was untested previously). https://fedorahosted.org/freeipa/ticket/2509 --- tests/test_ipalib/test_frontend.py | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'tests/test_ipalib/test_frontend.py') diff --git a/tests/test_ipalib/test_frontend.py b/tests/test_ipalib/test_frontend.py index b717a43a..5f7ce65f 100644 --- a/tests/test_ipalib/test_frontend.py +++ b/tests/test_ipalib/test_frontend.py @@ -511,6 +511,11 @@ class test_Command(ClassChecker): assert e.count == 2 assert str(e) == "command 'example' takes at most 2 arguments" + # Test that OptionError is raised when an extra option is given: + o = self.get_instance() + e = raises(errors.OptionError, o.args_options_2_params, bad_option=True) + assert e.option == 'bad_option' + # Test that OverlapError is raised: o = self.get_instance(args=('one', 'two'), options=('three', 'four')) e = raises(errors.OverlapError, o.args_options_2_params, -- cgit