mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
frontend: re-raise remote RequirementError using CLI name in CLI
https://fedorahosted.org/freeipa/ticket/4739 Reviewed-By: David Kupka <dkupka@redhat.com>
This commit is contained in:
@@ -459,38 +459,32 @@ class test_Param(ClassChecker):
|
||||
|
||||
# Test in default state (with no rules, no kwarg):
|
||||
o = self.cls('my_param')
|
||||
e = raises(errors.RequirementError, o.validate, None, 'cli')
|
||||
e = raises(errors.RequirementError, o.validate, None)
|
||||
assert e.name == 'my_param'
|
||||
|
||||
# Test in default state that cli_name gets returned in the exception
|
||||
# when context == 'cli'
|
||||
o = self.cls('my_param', cli_name='short')
|
||||
e = raises(errors.RequirementError, o.validate, None, 'cli')
|
||||
assert e.name == 'short'
|
||||
|
||||
# Test with required=False
|
||||
o = self.cls('my_param', required=False)
|
||||
assert o.required is False
|
||||
assert o.validate(None, 'cli') is None
|
||||
assert o.validate(None) is None
|
||||
|
||||
# Test with query=True:
|
||||
o = self.cls('my_param', query=True)
|
||||
assert o.query is True
|
||||
e = raises(errors.RequirementError, o.validate, None, 'cli')
|
||||
e = raises(errors.RequirementError, o.validate, None)
|
||||
assert_equal(e.name, 'my_param')
|
||||
|
||||
# Test with multivalue=True:
|
||||
o = self.cls('my_param', multivalue=True)
|
||||
e = raises(TypeError, o.validate, [], 'cli')
|
||||
e = raises(TypeError, o.validate, [])
|
||||
assert str(e) == TYPE_ERROR % ('value', tuple, [], list)
|
||||
e = raises(ValueError, o.validate, tuple(), 'cli')
|
||||
e = raises(ValueError, o.validate, tuple())
|
||||
assert str(e) == 'value: empty tuple must be converted to None'
|
||||
|
||||
# Test with wrong (scalar) type:
|
||||
e = raises(TypeError, o.validate, (None, None, 42, None), 'cli')
|
||||
e = raises(TypeError, o.validate, (None, None, 42, None))
|
||||
assert str(e) == TYPE_ERROR % ('my_param', type(None), 42, int)
|
||||
o = self.cls('my_param')
|
||||
e = raises(TypeError, o.validate, 'Hello', 'cli')
|
||||
e = raises(TypeError, o.validate, 'Hello')
|
||||
assert str(e) == TYPE_ERROR % ('my_param', type(None), 'Hello', str)
|
||||
|
||||
class Example(self.cls):
|
||||
@@ -502,13 +496,13 @@ class test_Param(ClassChecker):
|
||||
fail = DummyRule(u'no good')
|
||||
o = Example('example', pass1, pass2)
|
||||
assert o.multivalue is False
|
||||
assert o.validate(11, 'cli') is None
|
||||
assert o.validate(11) is None
|
||||
assert pass1.calls == [(text.ugettext, 11)]
|
||||
assert pass2.calls == [(text.ugettext, 11)]
|
||||
pass1.reset()
|
||||
pass2.reset()
|
||||
o = Example('example', pass1, pass2, fail)
|
||||
e = raises(errors.ValidationError, o.validate, 42, 'cli')
|
||||
e = raises(errors.ValidationError, o.validate, 42)
|
||||
assert e.name == 'example'
|
||||
assert e.error == u'no good'
|
||||
assert e.index is None
|
||||
@@ -522,7 +516,7 @@ class test_Param(ClassChecker):
|
||||
fail = DummyRule(u'this one is not good')
|
||||
o = Example('example', pass1, pass2, multivalue=True)
|
||||
assert o.multivalue is True
|
||||
assert o.validate((3, 9), 'cli') is None
|
||||
assert o.validate((3, 9)) is None
|
||||
assert pass1.calls == [
|
||||
(text.ugettext, 3),
|
||||
(text.ugettext, 9),
|
||||
@@ -535,7 +529,7 @@ class test_Param(ClassChecker):
|
||||
pass2.reset()
|
||||
o = Example('multi_example', pass1, pass2, fail, multivalue=True)
|
||||
assert o.multivalue is True
|
||||
e = raises(errors.ValidationError, o.validate, (3, 9), 'cli')
|
||||
e = raises(errors.ValidationError, o.validate, (3, 9))
|
||||
assert e.name == 'multi_example'
|
||||
assert e.error == u'this one is not good'
|
||||
assert e.index == 0
|
||||
|
||||
@@ -147,7 +147,7 @@ class TestAttrOnUser(XMLRPC_test):
|
||||
""" Try setting givenname to None with setattr in user """
|
||||
user.ensure_exists()
|
||||
command = user.make_update_command(dict(setattr=(u'givenname=')))
|
||||
with raises_exact(errors.RequirementError(name='givenname')):
|
||||
with raises_exact(errors.RequirementError(name='first')):
|
||||
command()
|
||||
|
||||
def test_set_givenname_to_none_with_option(self, user):
|
||||
@@ -219,7 +219,7 @@ class TestAttrOnConfigs(XMLRPC_test):
|
||||
**dict(delattr=u'ipasearchrecordslimit=100')
|
||||
)
|
||||
with raises_exact(errors.RequirementError(
|
||||
name='ipasearchrecordslimit')):
|
||||
name='searchrecordslimit')):
|
||||
command()
|
||||
|
||||
def test_set_nonexistent_attribute(self, user):
|
||||
|
||||
@@ -61,7 +61,7 @@ class test_config(Declarative):
|
||||
desc='Try to remove ipausersearchfields',
|
||||
command=('config_mod', [],
|
||||
dict(delattr=u'ipausersearchfields=uid,givenname,sn,telephonenumber,ou,title')),
|
||||
expected=errors.RequirementError(name='ipausersearchfields'),
|
||||
expected=errors.RequirementError(name='usersearch'),
|
||||
),
|
||||
|
||||
dict(
|
||||
|
||||
@@ -1179,7 +1179,7 @@ class test_dns(Declarative):
|
||||
dict(
|
||||
desc='Try to modify SRV record in zone %r without specifying modified value' % (zone1),
|
||||
command=('dnsrecord_mod', [zone1, u'_foo._tcp'], {'srv_part_priority': 1,}),
|
||||
expected=errors.RequirementError(name='srvrecord'),
|
||||
expected=errors.RequirementError(name='srv_rec'),
|
||||
),
|
||||
|
||||
dict(
|
||||
|
||||
@@ -195,7 +195,7 @@ class test_permission_negative(Declarative):
|
||||
attrs=[u'sn'],
|
||||
)
|
||||
),
|
||||
expected=errors.RequirementError(name='ipapermright'),
|
||||
expected=errors.RequirementError(name='right'),
|
||||
),
|
||||
|
||||
dict(
|
||||
@@ -310,7 +310,7 @@ class test_permission_negative(Declarative):
|
||||
ipapermright=None,
|
||||
)
|
||||
),
|
||||
expected=errors.RequirementError(name='ipapermright'),
|
||||
expected=errors.RequirementError(name='right'),
|
||||
),
|
||||
|
||||
dict(
|
||||
|
||||
Reference in New Issue
Block a user