diff options
20 files changed, 338 insertions, 183 deletions
diff --git a/ipalib/plugins/netgroup.py b/ipalib/plugins/netgroup.py index 06372a592..693c00c1a 100644 --- a/ipalib/plugins/netgroup.py +++ b/ipalib/plugins/netgroup.py @@ -202,7 +202,10 @@ class netgroup_mod(LDAPUpdate): msg_summary = _('Modified netgroup "%(value)s"') def pre_callback(self, ldap, dn, entry_attrs, attrs_list, *keys, **options): - (dn, entry_attrs) = ldap.get_entry(dn, attrs_list) + try: + (dn, entry_attrs) = ldap.get_entry(dn, attrs_list) + except errors.NotFound: + self.obj.handle_not_found(*keys) if is_all(options, 'usercategory') and 'memberuser' in entry_attrs: raise errors.MutuallyExclusiveError(reason="user category cannot be set to 'all' while there are allowed users") if is_all(options, 'hostcategory') and 'memberhost' in entry_attrs: diff --git a/tests/test_xmlrpc/test_attr.py b/tests/test_xmlrpc/test_attr.py index c19a6948c..6877a6306 100644 --- a/tests/test_xmlrpc/test_attr.py +++ b/tests/test_xmlrpc/test_attr.py @@ -241,7 +241,8 @@ class test_attr(Declarative): command=( 'user_mod', [user1], dict(delattr=u'telephoneNumber=301-555-1212') ), - expected=errors.AttrValueNotFound(attr='telephoneNumber', value='301-555-1212') + expected=errors.AttrValueNotFound(attr=u'telephonenumber', + value=u'301-555-1212') ), @@ -345,7 +346,7 @@ class test_attr(Declarative): command=( 'user_mod', [user1], dict(givenname=None) ), - expected=errors.RequirementError(name='givenname'), + expected=errors.RequirementError(name='first'), ), diff --git a/tests/test_xmlrpc/test_automember_plugin.py b/tests/test_xmlrpc/test_automember_plugin.py index b59899b45..ceae8c3ff 100644 --- a/tests/test_xmlrpc/test_automember_plugin.py +++ b/tests/test_xmlrpc/test_automember_plugin.py @@ -76,33 +76,48 @@ class test_automember(Declarative): tests = [ dict( - desc='Try to retrieve non-existent %r' % user1, - command=('user_show', [user1], {}), - expected=errors.NotFound(reason='no such entry'), + desc='Try to retrieve non-existent group rule %r' % group1, + command=('automember_add', [group1], + dict(description=u'Test desc', type=u'group')), + expected=errors.NotFound(reason=u'Group: %s not found!' % group1), ), + dict( + desc='Try to update non-existent group rule %r' % group1, + command=('automember_add', [group1], dict(type=u'group')), + expected=errors.NotFound(reason=u'Group: %s not found!' % group1), + ), dict( - desc='Try to update non-existent %r' % user1, - command=('user_mod', [user1], dict(givenname=u'Foo')), - expected=errors.NotFound(reason='no such entry'), + desc='Try to delete non-existent group rule %r' % group1, + command=('automember_del', [group1], dict(type=u'group')), + expected=errors.NotFound(reason=u': auto_member_rule not found'), ), dict( - desc='Try to delete non-existent %r' % user1, - command=('user_del', [user1], {}), - expected=errors.NotFound(reason='no such entry'), + desc='Try to retrieve non-existent hostgroup rule %r' % hostgroup1, + command=('automember_add', [hostgroup1], + dict(description=u'Test desc', type=u'hostgroup')), + expected=errors.NotFound( + reason=u'Group: %s not found!' % hostgroup1), ), + dict( + desc='Try to update non-existent hostgroup rule %r' % hostgroup1, + command=('automember_add', [hostgroup1], dict(type=u'hostgroup')), + expected=errors.NotFound( + reason=u'Group: %s not found!' % hostgroup1), + ), dict( - desc='Try to rename non-existent %r' % user1, - command=('user_mod', [user1], dict(setattr=u'uid=tuser')), - expected=errors.NotFound(reason='no such entry'), + desc='Try to delete non-existent hostgroup rule %r' % hostgroup1, + command=('automember_del', [hostgroup1], dict(type=u'hostgroup')), + expected=errors.NotFound(reason=u': auto_member_rule not found'), ), + dict( desc='Create %r' % group1, command=( diff --git a/tests/test_xmlrpc/test_delegation_plugin.py b/tests/test_xmlrpc/test_delegation_plugin.py index c4473b9d4..95aa82877 100644 --- a/tests/test_xmlrpc/test_delegation_plugin.py +++ b/tests/test_xmlrpc/test_delegation_plugin.py @@ -39,21 +39,24 @@ class test_delegation(Declarative): dict( desc='Try to retrieve non-existent %r' % delegation1, command=('delegation_show', [delegation1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'ACI with name "%s" not found' % delegation1), ), dict( desc='Try to update non-existent %r' % delegation1, command=('delegation_mod', [delegation1], dict(group=u'admins')), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'ACI with name "%s" not found' % delegation1), ), dict( desc='Try to delete non-existent %r' % delegation1, command=('delegation_del', [delegation1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'ACI with name "%s" not found' % delegation1), ), @@ -78,7 +81,7 @@ class test_delegation(Declarative): memberof=u'nonexisting', ), ), - expected=errors.NotFound(reason='group not found'), + expected=errors.NotFound(reason=u'nonexisting: group not found'), ), # Note that we add postalCode but expect postalcode. This tests diff --git a/tests/test_xmlrpc/test_dns_plugin.py b/tests/test_xmlrpc/test_dns_plugin.py index 966394532..661f87ad5 100644 --- a/tests/test_xmlrpc/test_dns_plugin.py +++ b/tests/test_xmlrpc/test_dns_plugin.py @@ -82,21 +82,24 @@ class test_dns(Declarative): dict( desc='Try to retrieve non-existent zone %r' % dnszone1, command=('dnszone_show', [dnszone1], {}), - expected=errors.NotFound(reason='DNS zone not found'), + expected=errors.NotFound( + reason=u'%s: DNS zone not found' % dnszone1), ), dict( desc='Try to update non-existent zone %r' % dnszone1, command=('dnszone_mod', [dnszone1], {'idnssoamname': u'foobar'}), - expected=errors.NotFound(reason='DNS zone not found'), + expected=errors.NotFound( + reason=u'%s: DNS zone not found' % dnszone1), ), dict( desc='Try to delete non-existent zone %r' % dnszone1, command=('dnszone_del', [dnszone1], {}), - expected=errors.NotFound(reason='DNS zone not found'), + expected=errors.NotFound( + reason=u'%s: DNS zone not found' % dnszone1), ), @@ -109,7 +112,9 @@ class test_dns(Declarative): 'ip_address' : u'1.2.3.4', } ), - expected=errors.ValidationError(name='idnsname', error=''), + expected=errors.ValidationError(name='name', + error=u'only letters, numbers, and - are allowed. ' + + u'- must not be the DNS label character'), ), @@ -155,7 +160,8 @@ class test_dns(Declarative): 'ip_address' : u'1.2.3.4', } ), - expected=errors.DuplicateEntry(), + expected=errors.DuplicateEntry( + message=u'DNS zone with name "%s" already exists' % dnszone1), ), dict( @@ -446,28 +452,33 @@ class test_dns(Declarative): dict( desc='Try to retrieve non-existent record %r in zone %r' % (dnsres1, dnszone1), command=('dnsrecord_show', [dnszone1, dnsres1], {}), - expected=errors.NotFound(reason='DNS resource record not found'), + expected=errors.NotFound( + reason=u'%s: DNS resource record not found' % dnsres1), ), dict( desc='Try to delete non-existent record %r in zone %r' % (dnsres1, dnszone1), command=('dnsrecord_del', [dnszone1, dnsres1], {'del_all' : True}), - expected=errors.NotFound(reason='DNS resource record not found'), + expected=errors.NotFound( + reason=u'%s: DNS resource record not found' % dnsres1), ), dict( desc='Try to delete root zone record \'@\' in %r' % (dnszone1), command=('dnsrecord_del', [dnszone1, u'@'], {'del_all' : True}), - expected=errors.ValidationError(name='del_all', error=''), + expected=errors.ValidationError(name='del_all', + error=u"Zone record '@' cannot be deleted"), ), dict( desc='Try to create record with invalid name in zone %r' % dnszone1, command=('dnsrecord_add', [dnszone1, u'invalid record'], {'arecord': u'127.0.0.1'}), - expected=errors.ValidationError(name='idnsname', error=''), + expected=errors.ValidationError(name='name', + error=u'only letters, numbers, _, and - are allowed. ' + + u'- must not be the DNS label character'), ), @@ -591,7 +602,9 @@ class test_dns(Declarative): dict( desc='Try to add invalid MX record to zone %r using dnsrecord_add' % (dnszone1), command=('dnsrecord_add', [dnszone1, u'@'], {'mxrecord': dnszone1_mname }), - expected=errors.ValidationError(name='mxrecord', error=''), + expected=errors.ValidationError(name='mx_rec', + error=u'format must be specified as "PREFERENCE EXCHANGER" ' + + u' (see RFC 1035 for details)'), ), dict( @@ -613,7 +626,9 @@ class test_dns(Declarative): dict( desc='Try to add invalid SRV record to zone %r using dnsrecord_add' % (dnszone1), command=('dnsrecord_add', [dnszone1, u'_foo._tcp'], {'srvrecord': dnszone1_mname}), - expected=errors.ValidationError(name='srvrecord', error=''), + expected=errors.ValidationError(name='srv_rec', + error=u'format must be specified as "PRIORITY WEIGHT PORT TARGET" ' + + u' (see RFC 2782 for details)'), ), dict( @@ -622,7 +637,9 @@ class test_dns(Declarative): 'srv_part_weight' : 0, 'srv_part_port' : 123, 'srv_part_target' : u'foo bar'}), - expected=errors.ValidationError(name='srv_part_target', error=''), + expected=errors.ValidationError(name='srv_target', + error=u'invalid domain-name: only letters, numbers, and - ' + + u'are allowed. - must not be the DNS label character'), ), dict( @@ -634,7 +651,8 @@ class test_dns(Declarative): 'srvrecord': [u"1 100 1234 %s" \ % dnszone1_mname]}), expected=errors.ValidationError(name='srv_target', - error='Raw value of a DNS record was already set by a_rec option'), + error=u'Raw value of a DNS record was already set by ' + + u'"srv_rec" option'), ), dict( @@ -662,7 +680,8 @@ class test_dns(Declarative): desc='Try to modify SRV record in zone %r with non-existent modified value' % (dnszone1), command=('dnsrecord_mod', [dnszone1, u'_foo._tcp'], {'srv_part_priority': 1, 'srvrecord' : [u"0 100 1234 does.not.exist."] }), - expected=errors.AttrValueNotFound(attr='SRV', value=u'0 100 1234 ns1.dnszone.test.'), + expected=errors.AttrValueNotFound(attr='SRV record', + value=u'0 100 1234 does.not.exist.'), ), dict( @@ -689,7 +708,8 @@ class test_dns(Declarative): dict( desc='Try to add invalid LOC record to zone %r using dnsrecord_add' % (dnszone1), command=('dnsrecord_add', [dnszone1, u'@'], {'locrecord': u"91 11 42.4 N 16 36 29.6 E 227.64" }), - expected=errors.ValidationError(name='locrecord', error=''), + expected=errors.ValidationError(name='lat_deg', + error=u'can be at most 90'), ), dict( @@ -712,7 +732,9 @@ class test_dns(Declarative): dict( desc='Try to add invalid CNAME record %r using dnsrecord_add' % (dnsres1), command=('dnsrecord_add', [dnszone1, dnsres1], {'cnamerecord': u'-.example.com' }), - expected=errors.ValidationError(name='cnamerecord', error=''), + expected=errors.ValidationError(name='hostname', + error=u'invalid domain-name: only letters, numbers, and - ' + + u'are allowed. - must not be the DNS label character'), ), dict( @@ -734,7 +756,9 @@ class test_dns(Declarative): dict( desc='Try to add invalid KX record %r using dnsrecord_add' % (dnsres1), command=('dnsrecord_add', [dnszone1, dnsres1], {'kxrecord': u'foo-1.example.com' }), - expected=errors.ValidationError(name='kxrecord', error=''), + expected=errors.ValidationError(name='kx_rec', + error=u'format must be specified as "PREFERENCE EXCHANGER" ' + + u' (see RFC 2230 for details)'), ), dict( @@ -841,7 +865,8 @@ class test_dns(Declarative): 'ip_address' : u'1.2.3.4', } ), - expected=errors.ValidationError(name='name_from_ip', error='invalid format'), + expected=errors.ValidationError(name='name_from_ip', + error=u'invalid IP network format'), ), dict( @@ -881,7 +906,9 @@ class test_dns(Declarative): dict( desc='Try to add invalid PTR %r to %r using dnsrecord_add' % (dnsrev1, revdnszone1), command=('dnsrecord_add', [revdnszone1, dnsrev1], {'ptrrecord': u'-.example.com' }), - expected=errors.ValidationError(name='ptrrecord', error=''), + expected=errors.ValidationError(name='hostname', + error=u'invalid domain-name: only letters, numbers, and - ' + + u'are allowed. - must not be the DNS label character'), ), dict( @@ -916,7 +943,8 @@ class test_dns(Declarative): dict( desc='Try to add invalid allow-query to zone %r' % dnszone1, command=('dnszone_mod', [dnszone1], {'idnsallowquery': u'localhost'}), - expected=errors.ValidationError(name='idnsallowquery', error=''), + expected=errors.ValidationError(name='allow_query', + error=u'ACL name "localhost" is not supported'), ), dict( @@ -948,7 +976,8 @@ class test_dns(Declarative): dict( desc='Try to add invalid allow-transfer to zone %r' % dnszone1, command=('dnszone_mod', [dnszone1], {'idnsallowtransfer': u'10.'}), - expected=errors.ValidationError(name='idnsallowtransfer', error=''), + expected=errors.ValidationError(name='allow_transfer', + error=u"failed to detect a valid IP address from u'10.'"), ), dict( @@ -981,7 +1010,9 @@ class test_dns(Declarative): desc='Try to create duplicate PTR record for %r with --a-create-reverse' % dnsres1, command=('dnsrecord_add', [dnszone1, dnsres1], {'arecord': u'80.142.15.80', 'a_extra_create_reverse' : True}), - expected=errors.DuplicateEntry(message=u''), + expected=errors.DuplicateEntry(message=u'Reverse record for IP ' + + u'address 80.142.15.80 already exists in reverse zone ' + + u'15.142.80.in-addr.arpa..'), ), diff --git a/tests/test_xmlrpc/test_group_plugin.py b/tests/test_xmlrpc/test_group_plugin.py index d322c2dcd..c0abcb955 100644 --- a/tests/test_xmlrpc/test_group_plugin.py +++ b/tests/test_xmlrpc/test_group_plugin.py @@ -48,28 +48,28 @@ class test_group(Declarative): dict( desc='Try to retrieve non-existent %r' % group1, command=('group_show', [group1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'%s: group not found' % group1), ), dict( desc='Try to update non-existent %r' % group1, command=('group_mod', [group1], dict(description=u'Foo')), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'%s: group not found' % group1), ), dict( desc='Try to delete non-existent %r' % group1, command=('group_del', [group1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'%s: group not found' % group1), ), dict( desc='Try to rename non-existent %r' % group1, command=('group_mod', [group1], dict(setattr=u'cn=%s' % renamedgroup1)), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'%s: group not found' % group1), ), @@ -99,7 +99,8 @@ class test_group(Declarative): command=( 'group_add', [group1], dict(description=u'Test desc 1') ), - expected=errors.DuplicateEntry(), + expected=errors.DuplicateEntry( + message=u'group with name "%s" already exists' % group1), ), @@ -216,21 +217,21 @@ class test_group(Declarative): dict( desc='Try to retrieve non-existent %r' % group2, command=('group_show', [group2], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'%s: group not found' % group2), ), dict( desc='Try to update non-existent %r' % group2, command=('group_mod', [group2], dict(description=u'Foo')), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'%s: group not found' % group2), ), dict( desc='Try to delete non-existent %r' % group2, command=('group_del', [group2], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'%s: group not found' % group2), ), @@ -261,7 +262,8 @@ class test_group(Declarative): command=( 'group_add', [group2], dict(description=u'Test desc 2') ), - expected=errors.DuplicateEntry(), + expected=errors.DuplicateEntry( + message=u'group with name "%s" already exists' % group2), ), @@ -543,21 +545,21 @@ class test_group(Declarative): dict( desc='Try to delete non-existent %r' % group1, command=('group_del', [group1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'%s: group not found' % group1), ), dict( desc='Try to retrieve non-existent %r' % group1, command=('group_show', [group1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'%s: group not found' % group1), ), dict( desc='Try to update non-existent %r' % group1, command=('group_mod', [group1], dict(description=u'Foo')), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'%s: group not found' % group1), ), @@ -578,27 +580,28 @@ class test_group(Declarative): dict( desc='Try to delete non-existent %r' % group2, command=('group_del', [group2], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'%s: group not found' % group2), ), dict( desc='Try to retrieve non-existent %r' % group2, command=('group_show', [group2], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'%s: group not found' % group2), ), dict( desc='Try to update non-existent %r' % group2, command=('group_mod', [group2], dict(description=u'Foo')), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'%s: group not found' % group2), ), dict( desc='Test an invalid group name %r' % invalidgroup1, command=('group_add', [invalidgroup1], dict(description=u'Test')), - expected=errors.ValidationError(name='cn', error='may only include letters, numbers, _, -, . and $'), + expected=errors.ValidationError(name='group_name', + error=u'may only include letters, numbers, _, -, . and $'), ), # The assumption on these next 4 tests is that if we don't get a @@ -606,21 +609,24 @@ class test_group(Declarative): dict( desc='Test that validation is disabled on mods', command=('group_mod', [invalidgroup1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: group not found' % invalidgroup1), ), dict( desc='Test that validation is disabled on deletes', command=('group_del', [invalidgroup1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: group not found' % invalidgroup1), ), dict( desc='Test that validation is disabled on show', command=('group_show', [invalidgroup1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: group not found' % invalidgroup1), ), @@ -732,11 +738,10 @@ class test_group(Declarative): ) ), - dict( desc='Verify that %r is really gone' % user1, command=('group_show', [user1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'%s: group not found' % user1), ), dict( @@ -789,7 +794,7 @@ class test_group(Declarative): dict( desc='Verify the managed group %r was not created' % user1, command=('group_show', [user1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'%s: group not found' % user1), ), ] diff --git a/tests/test_xmlrpc/test_hbacsvcgroup_plugin.py b/tests/test_xmlrpc/test_hbacsvcgroup_plugin.py index ba30854a7..1552f46ce 100644 --- a/tests/test_xmlrpc/test_hbacsvcgroup_plugin.py +++ b/tests/test_xmlrpc/test_hbacsvcgroup_plugin.py @@ -47,7 +47,8 @@ class test_hbacsvcgroup(Declarative): dict( desc='Try to retrieve non-existent %r' % hbacsvcgroup1, command=('hbacsvcgroup_show', [hbacsvcgroup1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: HBAC service group not found' % hbacsvcgroup1), ), @@ -56,14 +57,16 @@ class test_hbacsvcgroup(Declarative): command=('hbacsvcgroup_mod', [hbacsvcgroup1], dict(description=u'Updated hbacsvcgroup 1') ), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: HBAC service group not found' % hbacsvcgroup1), ), dict( desc='Try to delete non-existent %r' % hbacsvcgroup1, command=('hbacsvcgroup_del', [hbacsvcgroup1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: HBAC service group not found' % hbacsvcgroup1), ), @@ -91,7 +94,9 @@ class test_hbacsvcgroup(Declarative): command=('hbacsvcgroup_add', [hbacsvcgroup1], dict(description=u'Test hbacsvcgroup 1') ), - expected=errors.DuplicateEntry(), + expected=errors.DuplicateEntry( + message=u'HBAC service group with name "%s" already exists' % + hbacsvcgroup1), ), diff --git a/tests/test_xmlrpc/test_host_plugin.py b/tests/test_xmlrpc/test_host_plugin.py index 4ed4c17a8..b7b3567b6 100644 --- a/tests/test_xmlrpc/test_host_plugin.py +++ b/tests/test_xmlrpc/test_host_plugin.py @@ -72,21 +72,24 @@ class test_host(Declarative): dict( desc='Try to retrieve non-existent %r' % fqdn1, command=('host_show', [fqdn1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: host not found' % fqdn1), ), dict( desc='Try to update non-existent %r' % fqdn1, command=('host_mod', [fqdn1], dict(description=u'Nope')), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: host not found' % fqdn1), ), dict( desc='Try to delete non-existent %r' % fqdn1, command=('host_del', [fqdn1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: host not found' % fqdn1), ), @@ -127,7 +130,8 @@ class test_host(Declarative): force=True, ), ), - expected=errors.DuplicateEntry(), + expected=errors.DuplicateEntry(message=u'host with name ' + + u'"%s" already exists' % fqdn1), ), @@ -530,7 +534,9 @@ class test_host(Declarative): dict( desc='Add an illegal MAC address to %r' % fqdn1, command=('host_mod', [fqdn1], dict(macaddress=[u'xx'])), - expected=errors.ValidationError(name='macaddress', error='invalid \'macaddress\': Must be of the form HH:HH:HH:HH:HH:HH, where each H is a hexadecimal character.'), + expected=errors.ValidationError(name='macaddress', + error=u'Must be of the form HH:HH:HH:HH:HH:HH, where ' + + u'each H is a hexadecimal character.'), ), @@ -548,21 +554,21 @@ class test_host(Declarative): dict( desc='Try to retrieve non-existent %r' % fqdn1, command=('host_show', [fqdn1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'%s: host not found' % fqdn1), ), dict( desc='Try to update non-existent %r' % fqdn1, command=('host_mod', [fqdn1], dict(description=u'Nope')), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'%s: host not found' % fqdn1), ), dict( desc='Try to delete non-existent %r' % fqdn1, command=('host_del', [fqdn1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'%s: host not found' % fqdn1), ), # Test deletion using a non-fully-qualified hostname. Services @@ -636,7 +642,8 @@ class test_host(Declarative): dict( desc='Try to add host not in DNS %r without force' % fqdn2, command=('host_add', [fqdn2], {}), - expected=errors.DNSNotARecordError(reason='Host does not have corresponding DNS A record'), + expected=errors.DNSNotARecordError( + reason=u'Host does not have corresponding DNS A record'), ), @@ -660,7 +667,7 @@ class test_host(Declarative): krbprincipalname=[u'host/%s@%s' % (fqdn2, api.env.realm)], objectclass=objectclasses.host, ipauniqueid=[fuzzy_uuid], - managedby_host=[u'%s' % fqdn2], + managedby_host=[fqdn2], has_keytab=False, has_password=False, ), @@ -673,21 +680,25 @@ class test_host(Declarative): dict( desc='Delete the current host (master?) %s should be caught' % api.env.host, command=('host_del', [api.env.host], {}), - expected=errors.ValidationError(name='fqdn', error='An IPA master host cannot be deleted or disabled'), + expected=errors.ValidationError(name='hostname', + error=u'An IPA master host cannot be deleted or disabled'), ), dict( desc='Disable the current host (master?) %s should be caught' % api.env.host, command=('host_disable', [api.env.host], {}), - expected=errors.ValidationError(name='fqdn', error='An IPA master host cannot be deleted or disabled'), + expected=errors.ValidationError(name='hostname', + error=u'An IPA master host cannot be deleted or disabled'), ), dict( desc='Test that validation is enabled on adds', command=('host_add', [invalidfqdn1], {}), - expected=errors.ValidationError(name='fqdn', error='may only include letters, numbers, and -'), + expected=errors.ValidationError(name='hostname', + error=u'invalid domain-name: only letters, numbers, and - ' + + u'are allowed. - must not be the DNS label character'), ), @@ -696,21 +707,24 @@ class test_host(Declarative): dict( desc='Test that validation is disabled on mods', command=('host_mod', [invalidfqdn1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: host not found' % invalidfqdn1), ), dict( desc='Test that validation is disabled on deletes', command=('host_del', [invalidfqdn1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: host not found' % invalidfqdn1), ), dict( desc='Test that validation is disabled on show', command=('host_show', [invalidfqdn1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: host not found' % invalidfqdn1), ), diff --git a/tests/test_xmlrpc/test_hostgroup_plugin.py b/tests/test_xmlrpc/test_hostgroup_plugin.py index f5c2efb79..eda5f02f8 100644 --- a/tests/test_xmlrpc/test_hostgroup_plugin.py +++ b/tests/test_xmlrpc/test_hostgroup_plugin.py @@ -51,7 +51,8 @@ class test_hostgroup(Declarative): dict( desc='Try to retrieve non-existent %r' % hostgroup1, command=('hostgroup_show', [hostgroup1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: host group not found' % hostgroup1), ), @@ -60,21 +61,24 @@ class test_hostgroup(Declarative): command=('hostgroup_mod', [hostgroup1], dict(description=u'Updated hostgroup 1') ), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: host group not found' % hostgroup1), ), dict( desc='Try to delete non-existent %r' % hostgroup1, command=('hostgroup_del', [hostgroup1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: host group not found' % hostgroup1), ), dict( desc='Test an invalid hostgroup name %r' % invalidhostgroup1, command=('hostgroup_add', [invalidhostgroup1], dict(description=u'Test')), - expected=errors.ValidationError(name='cn', error='may only include letters, numbers, _, - and .'), + expected=errors.ValidationError(name='hostgroup_name', + error=u'may only include letters, numbers, _, -, and .'), ), @@ -105,7 +109,8 @@ class test_hostgroup(Declarative): command=('hostgroup_add', [hostgroup1], dict(description=u'Test hostgroup 1') ), - expected=errors.DuplicateEntry(), + expected=errors.DuplicateEntry(message= + u'host group with name "%s" already exists' % hostgroup1), ), diff --git a/tests/test_xmlrpc/test_netgroup_plugin.py b/tests/test_xmlrpc/test_netgroup_plugin.py index 33b2c6da7..afb2ac734 100644 --- a/tests/test_xmlrpc/test_netgroup_plugin.py +++ b/tests/test_xmlrpc/test_netgroup_plugin.py @@ -81,7 +81,8 @@ class test_netgroup(Declarative): dict( desc='Try to retrieve non-existent %r' % netgroup1, command=('netgroup_show', [netgroup1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: netgroup not found' % netgroup1), ), @@ -90,35 +91,42 @@ class test_netgroup(Declarative): command=('netgroup_mod', [netgroup1], dict(description=u'Updated hostgroup 1') ), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: netgroup not found' % netgroup1), ), dict( desc='Try to delete non-existent %r' % netgroup1, command=('netgroup_del', [netgroup1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: netgroup not found' % netgroup1), ), dict( desc='Test an invalid netgroup name %r' % invalidnetgroup1, command=('netgroup_add', [invalidnetgroup1], dict(description=u'Test')), - expected=errors.ValidationError(name='cn', error='may only include letters, numbers, _, - and .'), + expected=errors.ValidationError(name='name', + error=u'may only include letters, numbers, _, -, and .'), ), dict( desc='Test an invalid nisdomain1 name %r' % invalidnisdomain1, - command=('netgroup_add', [netgroup1], dict(description=u'Test',nisdomainname=invalidnisdomain1)), - expected=errors.ValidationError(name='nisdomainname', error='may only include letters, numbers, _, - and .'), + command=('netgroup_add', [netgroup1], + dict(description=u'Test',nisdomainname=invalidnisdomain1)), + expected=errors.ValidationError(name='nisdomain', + error='may only include letters, numbers, _, -, and .'), ), dict( desc='Test an invalid nisdomain2 name %r' % invalidnisdomain2, - command=('netgroup_add', [netgroup1], dict(description=u'Test',nisdomainname=invalidnisdomain2)), - expected=errors.ValidationError(name='nisdomainname', error='may only include letters, numbers, _, - and .'), + command=('netgroup_add', [netgroup1], + dict(description=u'Test',nisdomainname=invalidnisdomain2)), + expected=errors.ValidationError(name='nisdomain', + error='may only include letters, numbers, _, -, and .'), ), @@ -169,7 +177,8 @@ class test_netgroup(Declarative): command=('netgroup_add', [netgroup1], dict(description=u'Test netgroup 1') ), - expected=errors.DuplicateEntry(), + expected=errors.DuplicateEntry( + message=u'netgroup with name "%s" already exists' % netgroup1), ), diff --git a/tests/test_xmlrpc/test_permission_plugin.py b/tests/test_xmlrpc/test_permission_plugin.py index ab2858860..d730399c1 100644 --- a/tests/test_xmlrpc/test_permission_plugin.py +++ b/tests/test_xmlrpc/test_permission_plugin.py @@ -61,21 +61,24 @@ class test_permission(Declarative): dict( desc='Try to retrieve non-existent %r' % permission1, command=('permission_show', [permission1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: permission not found' % permission1), ), dict( desc='Try to update non-existent %r' % permission1, command=('permission_mod', [permission1], dict(permissions=u'all')), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: permission not found' % permission1), ), dict( desc='Try to delete non-existent %r' % permission1, command=('permission_del', [permission1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: permission not found' % permission1), ), @@ -516,21 +519,24 @@ class test_permission(Declarative): dict( desc='Try to delete non-existent %r' % permission1, command=('permission_del', [permission1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: permission not found' % permission1), ), dict( desc='Try to retrieve non-existent %r' % permission1, command=('permission_show', [permission1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: permission not found' % permission1), ), dict( desc='Try to update non-existent %r' % permission1, command=('permission_mod', [permission1], dict(rename=u'Foo')), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: permission not found' % permission1), ), @@ -575,7 +581,7 @@ class test_permission(Declarative): permissions=u'write', ) ), - expected=errors.NotFound(reason='group not found'), + expected=errors.NotFound(reason=u'nonexisting: group not found'), ), dict( @@ -603,8 +609,9 @@ class test_permission(Declarative): dict( desc='Try to update non-existent memberof of %r' % permission1, - command=('permission_mod', [permission1], dict(memberof=u'nonexisting')), - expected=errors.NotFound(reason='group not found'), + command=('permission_mod', [permission1], dict( + memberof=u'nonexisting')), + expected=errors.NotFound(reason=u'nonexisting: group not found'), ), dict( diff --git a/tests/test_xmlrpc/test_privilege_plugin.py b/tests/test_xmlrpc/test_privilege_plugin.py index 944225585..eb8120684 100644 --- a/tests/test_xmlrpc/test_privilege_plugin.py +++ b/tests/test_xmlrpc/test_privilege_plugin.py @@ -52,21 +52,24 @@ class test_privilege(Declarative): dict( desc='Try to retrieve non-existent %r' % privilege1, command=('privilege_show', [privilege1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: privilege not found' % privilege1), ), dict( desc='Try to update non-existent %r' % privilege1, command=('privilege_mod', [privilege1], dict(description=u'Foo')), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: privilege not found' % privilege1), ), dict( desc='Try to delete non-existent %r' % privilege1, command=('privilege_del', [privilege1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: privilege not found' % privilege1), ), diff --git a/tests/test_xmlrpc/test_role_plugin.py b/tests/test_xmlrpc/test_role_plugin.py index 8a5dede23..62bc6eade 100644 --- a/tests/test_xmlrpc/test_role_plugin.py +++ b/tests/test_xmlrpc/test_role_plugin.py @@ -61,28 +61,28 @@ class test_role(Declarative): dict( desc='Try to retrieve non-existent %r' % role1, command=('role_show', [role1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'%s: role not found' % role1), ), dict( desc='Try to update non-existent %r' % role1, command=('role_mod', [role1], dict(description=u'Foo')), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'%s: role not found' % role1), ), dict( desc='Try to delete non-existent %r' % role1, command=('role_del', [role1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'%s: role not found' % role1), ), dict( desc='Try to rename non-existent %r' % role1, command=('role_mod', [role1], dict(setattr=u'cn=%s' % renamedrole1)), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'%s: role not found' % role1), ), @@ -103,7 +103,8 @@ class test_role(Declarative): command=('role_add', [invalidrole1], dict(description=u'role desc 1') ), - expected=errors.ValidationError(name='cn', error='Leading and trailing spaces are not allowed'), + expected=errors.ValidationError(name='name', + error=u'Leading and trailing spaces are not allowed'), ), @@ -516,21 +517,21 @@ class test_role(Declarative): dict( desc='Try to delete non-existent %r' % role1, command=('role_del', [role1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'%s: role not found' % role1), ), dict( - desc='Try to retrieve non-existent %r' % role1, - command=('role_show', [group1], {}), - expected=errors.NotFound(reason='no such entry'), + desc='Try to show non-existent %r' % role1, + command=('role_show', [role1], {}), + expected=errors.NotFound(reason=u'%s: role not found' % role1), ), dict( desc='Try to update non-existent %r' % role1, command=('role_mod', [role1], dict(description=u'Foo')), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'%s: role not found' % role1), ), diff --git a/tests/test_xmlrpc/test_selfservice_plugin.py b/tests/test_xmlrpc/test_selfservice_plugin.py index 3546701d5..e60eb5d52 100644 --- a/tests/test_xmlrpc/test_selfservice_plugin.py +++ b/tests/test_xmlrpc/test_selfservice_plugin.py @@ -39,21 +39,24 @@ class test_selfservice(Declarative): dict( desc='Try to retrieve non-existent %r' % selfservice1, command=('selfservice_show', [selfservice1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'ACI with name "%s" not found' % selfservice1), ), dict( desc='Try to update non-existent %r' % selfservice1, command=('selfservice_mod', [selfservice1], dict(description=u'Foo')), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'ACI with name "%s" not found' % selfservice1), ), dict( desc='Try to delete non-existent %r' % selfservice1, command=('selfservice_del', [selfservice1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'ACI with name "%s" not found' % selfservice1), ), diff --git a/tests/test_xmlrpc/test_selinuxusermap_plugin.py b/tests/test_xmlrpc/test_selinuxusermap_plugin.py index 2fdccf3ef..2f6f52c6d 100644 --- a/tests/test_xmlrpc/test_selinuxusermap_plugin.py +++ b/tests/test_xmlrpc/test_selinuxusermap_plugin.py @@ -60,21 +60,24 @@ class test_selinuxusermap(Declarative): dict( desc='Try to retrieve non-existent %r' % rule1, command=('selinuxusermap_show', [rule1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: SELinux User Map rule not found' % rule1), ), dict( desc='Try to update non-existent %r' % rule1, command=('selinuxusermap_mod', [rule1], dict(description=u'Foo')), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: SELinux User Map rule not found' % rule1), ), dict( desc='Try to delete non-existent %r' % rule1, command=('selinuxusermap_del', [rule1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: SELinux User Map rule not found' % rule1), ), @@ -103,7 +106,8 @@ class test_selinuxusermap(Declarative): command=( 'selinuxusermap_add', [rule1], dict(ipaselinuxuser=selinuxuser1) ), - expected=errors.DuplicateEntry(), + expected=errors.DuplicateEntry(message=u'SELinux User Map rule ' + + u'with name "%s" already exists' % rule1), ), @@ -479,7 +483,8 @@ class test_selinuxusermap(Declarative): command=( 'selinuxusermap_mod', [rule1], dict(seealso=hbacrule1) ), - expected=errors.MutuallyExclusiveError(reason=u'cannot have both'), + expected=errors.MutuallyExclusiveError( + reason=u'HBAC rule and local members cannot both be set'), ), @@ -521,7 +526,8 @@ class test_selinuxusermap(Declarative): command=( 'selinuxusermap_mod', [rule1], dict(seealso=u'notfound') ), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'HBAC rule notfound not found'), ), @@ -546,14 +552,16 @@ class test_selinuxusermap(Declarative): dict( desc='Add user to %r that has HBAC' % rule1, command=('selinuxusermap_add_user', [rule1], dict(user=user1)), - expected=errors.MutuallyExclusiveError(reason=u'cannot have both'), + expected=errors.MutuallyExclusiveError( + reason=u'HBAC rule and local members cannot both be set'), ), dict( desc='Add host to %r that has HBAC' % rule1, command=('selinuxusermap_add_host', [rule1], dict(host=host1)), - expected=errors.MutuallyExclusiveError(reason=u'cannot have both'), + expected=errors.MutuallyExclusiveError( + reason=u'HBAC rule and local members cannot both be set'), ), @@ -592,17 +600,19 @@ class test_selinuxusermap(Declarative): dict( desc='Try to delete non-existent %r' % rule1, command=('selinuxusermap_del', [rule1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: SELinux User Map rule not found' % rule1), ), # Some negative tests dict( - desc='Create rule with unknown user%r' % rule1, + desc='Create rule with unknown user %r' % rule1, command=( 'selinuxusermap_add', [rule1], dict(ipaselinuxuser=u'notfound') ), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'SELinux user notfound not ' + + u'found in ordering list (in config)'), ), @@ -611,7 +621,8 @@ class test_selinuxusermap(Declarative): command=( 'selinuxusermap_add', [rule1], dict(ipaselinuxuser=u'bad+user') ), - expected=errors.ValidationError(name='ipaselinuxuser', error='invalid name'), + expected=errors.ValidationError(name='selinuxuser', + error=u'Invalid SELinux user name, only a-Z and _ are allowed'), ), @@ -620,7 +631,8 @@ class test_selinuxusermap(Declarative): command=( 'selinuxusermap_add', [rule1], dict(ipaselinuxuser=u'xguest_u:s999') ), - expected=errors.ValidationError(name='ipaselinuxuser', error='invalid name'), + expected=errors.ValidationError(name='selinuxuser', + error=u'Invalid MLS value, must match s[0-15](-s[0-15])'), ), @@ -629,7 +641,9 @@ class test_selinuxusermap(Declarative): command=( 'selinuxusermap_add', [rule1], dict(ipaselinuxuser=u'xguest_u:s0:p88') ), - expected=errors.ValidationError(name='ipaselinuxuser', error='invalid name'), + expected=errors.ValidationError(name='selinuxuser', + error=u'Invalid MCS value, must match c[0-1023].c[0-1023] ' + + u'and/or c[0-1023]-c[0-c0123]'), ), ] diff --git a/tests/test_xmlrpc/test_service_plugin.py b/tests/test_xmlrpc/test_service_plugin.py index 1c3a83a17..494a9fc78 100644 --- a/tests/test_xmlrpc/test_service_plugin.py +++ b/tests/test_xmlrpc/test_service_plugin.py @@ -61,7 +61,8 @@ class test_service(Declarative): dict( desc='Try to retrieve non-existent %r' % service1, command=('service_show', [service1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: service not found' % service1), ), @@ -191,7 +192,8 @@ class test_service(Declarative): force=True, ), ), - expected=errors.DuplicateEntry(), + expected=errors.DuplicateEntry( + message=u'service with name "%s" already exists' % service1), ), @@ -362,7 +364,9 @@ class test_service(Declarative): dict( desc='Update %r with a bad certificate' % service1, command=('service_mod', [service1], dict(usercertificate=badservercert)), - expected=errors.CertificateOperationError(error='exact error msg not needed'), + expected=errors.CertificateOperationError( + error=u'Issuer "CN=IPA Test Certificate Authority" does not ' + + u'match the expected issuer'), ), @@ -432,7 +436,8 @@ class test_service(Declarative): dict( desc='Try to retrieve non-existent %r' % service1, command=('service_show', [service1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: service not found' % service1), ), diff --git a/tests/test_xmlrpc/test_sudocmd_plugin.py b/tests/test_xmlrpc/test_sudocmd_plugin.py index cbbd26cd7..4574f774c 100644 --- a/tests/test_xmlrpc/test_sudocmd_plugin.py +++ b/tests/test_xmlrpc/test_sudocmd_plugin.py @@ -40,21 +40,24 @@ class test_sudocmd(Declarative): dict( desc='Try to retrieve non-existent %r' % sudocmd1, command=('sudocmd_show', [sudocmd1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: sudo command not found' % sudocmd1), ), dict( desc='Try to update non-existent %r' % sudocmd1, command=('sudocmd_mod', [sudocmd1], dict(description=u'Nope')), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: sudo command not found' % sudocmd1), ), dict( desc='Try to delete non-existent %r' % sudocmd1, command=('sudocmd_del', [sudocmd1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: sudo command not found' % sudocmd1), ), @@ -88,7 +91,8 @@ class test_sudocmd(Declarative): description=u'Test sudo command 1', ), ), - expected=errors.DuplicateEntry(), + expected=errors.DuplicateEntry(message=u'sudo command with ' + + u'name "%s" already exists' % sudocmd1), ), @@ -175,20 +179,23 @@ class test_sudocmd(Declarative): dict( desc='Try to retrieve non-existent %r' % sudocmd1, command=('sudocmd_show', [sudocmd1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: sudo command not found' % sudocmd1), ), dict( desc='Try to update non-existent %r' % sudocmd1, command=('sudocmd_mod', [sudocmd1], dict(description=u'Nope')), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: sudo command not found' % sudocmd1), ), dict( desc='Try to delete non-existent %r' % sudocmd1, command=('sudocmd_del', [sudocmd1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: sudo command not found' % sudocmd1), ), ] diff --git a/tests/test_xmlrpc/test_sudocmdgroup_plugin.py b/tests/test_xmlrpc/test_sudocmdgroup_plugin.py index 9f2bf3336..2bfbb6259 100644 --- a/tests/test_xmlrpc/test_sudocmdgroup_plugin.py +++ b/tests/test_xmlrpc/test_sudocmdgroup_plugin.py @@ -107,7 +107,8 @@ class test_sudocmdgroup(Declarative): dict( desc='Try to retrieve non-existent %r' % sudocmdgroup1, command=('sudocmdgroup_show', [sudocmdgroup1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: sudo command group not found' % sudocmdgroup1), ), @@ -115,14 +116,16 @@ class test_sudocmdgroup(Declarative): desc='Try to update non-existent %r' % sudocmdgroup1, command=('sudocmdgroup_mod', [sudocmdgroup1], dict(description=u'Foo')), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: sudo command group not found' % sudocmdgroup1), ), dict( desc='Try to delete non-existent %r' % sudocmdgroup1, command=('sudocmdgroup_del', [sudocmdgroup1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: sudo command group not found' % sudocmdgroup1), ), @@ -154,7 +157,8 @@ class test_sudocmdgroup(Declarative): 'sudocmdgroup_add', [sudocmdgroup1], dict(description=u'Test desc 1') ), - expected=errors.DuplicateEntry(), + expected=errors.DuplicateEntry(message=u'sudo command group ' + + u'with name "%s" already exists' % sudocmdgroup1), ), @@ -235,7 +239,8 @@ class test_sudocmdgroup(Declarative): dict( desc='Try to retrieve non-existent %r' % sudocmdgroup2, command=('sudocmdgroup_show', [sudocmdgroup2], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: sudo command group not found' % sudocmdgroup2), ), @@ -243,14 +248,16 @@ class test_sudocmdgroup(Declarative): desc='Try to update non-existent %r' % sudocmdgroup2, command=('sudocmdgroup_mod', [sudocmdgroup2], dict(description=u'Foo')), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: sudo command group not found' % sudocmdgroup2), ), dict( desc='Try to delete non-existent %r' % sudocmdgroup2, command=('sudocmdgroup_del', [sudocmdgroup2], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: sudo command group not found' % sudocmdgroup2), ), @@ -282,7 +289,9 @@ class test_sudocmdgroup(Declarative): 'sudocmdgroup_add', [sudocmdgroup2], dict(description=u'Test desc 2') ), - expected=errors.DuplicateEntry(), + expected=errors.DuplicateEntry( + message=u'sudo command group with name "%s" already exists' % + sudocmdgroup2), ), @@ -562,14 +571,16 @@ class test_sudocmdgroup(Declarative): dict( desc='Try to delete non-existent %r' % sudocmdgroup1, command=('sudocmdgroup_del', [sudocmdgroup1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: sudo command group not found' % sudocmdgroup1), ), dict( desc='Try to retrieve non-existent %r' % sudocmdgroup1, command=('sudocmdgroup_show', [sudocmdgroup1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: sudo command group not found' % sudocmdgroup1), ), @@ -577,7 +588,8 @@ class test_sudocmdgroup(Declarative): desc='Try to update non-existent %r' % sudocmdgroup1, command=('sudocmdgroup_mod', [sudocmdgroup1], dict(description=u'Foo')), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: sudo command group not found' % sudocmdgroup1), ), @@ -597,14 +609,16 @@ class test_sudocmdgroup(Declarative): dict( desc='Try to delete non-existent %r' % sudocmdgroup2, command=('sudocmdgroup_del', [sudocmdgroup2], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: sudo command group not found' % sudocmdgroup2), ), dict( desc='Try to retrieve non-existent %r' % sudocmdgroup2, command=('sudocmdgroup_show', [sudocmdgroup2], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: sudo command group not found' % sudocmdgroup2), ), @@ -612,7 +626,8 @@ class test_sudocmdgroup(Declarative): desc='Try to update non-existent %r' % sudocmdgroup2, command=('sudocmdgroup_mod', [sudocmdgroup2], dict(description=u'Foo')), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: sudo command group not found' % sudocmdgroup2), ), @@ -632,7 +647,8 @@ class test_sudocmdgroup(Declarative): dict( desc='Verify that %r is really gone' % sudocmd1, command=('sudocmd_show', [sudocmd1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: sudo command not found' % sudocmd1), ), ] diff --git a/tests/test_xmlrpc/test_user_plugin.py b/tests/test_xmlrpc/test_user_plugin.py index 3fcd10a1e..537768107 100644 --- a/tests/test_xmlrpc/test_user_plugin.py +++ b/tests/test_xmlrpc/test_user_plugin.py @@ -61,28 +61,28 @@ class test_user(Declarative): dict( desc='Try to retrieve non-existent %r' % user1, command=('user_show', [user1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'%s: user not found' % user1), ), dict( desc='Try to update non-existent %r' % user1, command=('user_mod', [user1], dict(givenname=u'Foo')), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'%s: user not found' % user1), ), dict( desc='Try to delete non-existent %r' % user1, command=('user_del', [user1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'%s: user not found' % user1), ), dict( desc='Try to rename non-existent %r' % user1, command=('user_mod', [user1], dict(setattr=u'uid=tuser')), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'%s: user not found' % user1), ), @@ -132,7 +132,8 @@ class test_user(Declarative): command=( 'user_add', [user1], dict(givenname=u'Test', sn=u'User1') ), - expected=errors.DuplicateEntry(), + expected=errors.DuplicateEntry( + message=u'user with name "%s" already exists' % user1), ), @@ -387,7 +388,8 @@ class test_user(Declarative): command=( 'user_mod', [user1], dict(setattr=u'krbmaxticketlife=88000') ), - expected=errors.ObjectclassViolation(info='attribute "krbmaxticketlife" not allowed'), + expected=errors.ObjectclassViolation( + info=u'attribute "krbmaxticketlife" not allowed'), ), @@ -485,7 +487,7 @@ class test_user(Declarative): dict( desc='Try to delete non-existent %r' % user1, command=('user_del', [user1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'tuser1: user not found'), ), @@ -584,7 +586,8 @@ class test_user(Declarative): dict( desc='Make non-existent %r the manager of %r' % (renameduser1, user2), command=('user_mod', [user2], dict(manager=renameduser1)), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'manager %s not found' % renameduser1), ), @@ -625,28 +628,31 @@ class test_user(Declarative): dict( desc='Try to retrieve non-existent %r' % user1, command=('user_show', [user1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'%s: user not found' % user1), ), dict( desc='Try to update non-existent %r' % user1, command=('user_mod', [user1], dict(givenname=u'Foo')), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound(reason=u'%s: user not found' % user1), ), dict( desc='Test an invalid login name %r' % invaliduser1, command=('user_add', [invaliduser1], dict(givenname=u'Test', sn=u'User1')), - expected=errors.ValidationError(name='uid', error='may only include letters, numbers, _, -, . and $'), + expected=errors.ValidationError(name='login', + error=u'may only include letters, numbers, _, -, . and $'), ), dict( desc='Test a login name that is too long %r' % invaliduser2, - command=('user_add', [invaliduser2], dict(givenname=u'Test', sn=u'User1')), - expected=errors.ValidationError(name='uid', error='can be at most 33 characters'), + command=('user_add', [invaliduser2], + dict(givenname=u'Test', sn=u'User1')), + expected=errors.ValidationError(name='login', + error='can be at most 32 characters'), ), @@ -655,14 +661,16 @@ class test_user(Declarative): dict( desc='Test that validation is disabled on deletes', command=('user_del', [invaliduser1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: user not found' % invaliduser1), ), dict( desc='Test that validation is disabled on show', command=('user_show', [invaliduser1], {}), - expected=errors.NotFound(reason='no such entry'), + expected=errors.NotFound( + reason=u'%s: user not found' % invaliduser1), ), @@ -681,14 +689,16 @@ class test_user(Declarative): dict( desc='Try to rename to invalid username %r' % user1, command=('user_mod', [user1], dict(rename=invaliduser1)), - expected=errors.ValidationError(name='uid', error='may only include letters, numbers, _, -, . and $'), + expected=errors.ValidationError(name='rename', + error=u'may only include letters, numbers, _, -, . and $'), ), dict( desc='Try to rename to a username that is too long %r' % user1, command=('user_mod', [user1], dict(rename=invaliduser2)), - expected=errors.ValidationError(name='uid', error='can be at most 33 characters'), + expected=errors.ValidationError(name='login', + error='can be at most 32 characters'), ), diff --git a/tests/test_xmlrpc/xmlrpc_test.py b/tests/test_xmlrpc/xmlrpc_test.py index 28f5fac7b..c279107b3 100644 --- a/tests/test_xmlrpc/xmlrpc_test.py +++ b/tests/test_xmlrpc/xmlrpc_test.py @@ -282,10 +282,8 @@ class Declarative(XMLRPC_test): # information through the exception, so we can't test the kw on the # client side. However, if we switch to using JSON-RPC for the default # transport, the exception is a free-form data structure (dict). -# if e.kw != expected.kw: -# raise AssertionError( -# KWARGS % (cmd, name, args, options, expected.kw, e.kw) -# ) + # For now just compare the strings + assert_deepequal(expected.strerror, e.strerror) def check_output(self, nice, cmd, args, options, expected, extra_check): got = api.Command[cmd](*args, **options) |