mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2024-12-24 16:10:02 -06:00
ccd3677b50
Needed for basic certs in idoverrides tests https://fedorahosted.org/freeipa/ticket/6412 Reviewed-By: Martin Basti <mbasti@redhat.com> Reviewed-By: Milan Kubik <mkubik@redhat.com>
117 lines
3.7 KiB
Python
117 lines
3.7 KiB
Python
#
|
|
# Copyright (C) 2016 FreeIPA Contributors see COPYING for license
|
|
#
|
|
|
|
from ipalib import api
|
|
from ipapython.dn import DN
|
|
from ipatests.test_xmlrpc.tracker.base import Tracker
|
|
from ipatests.util import assert_deepequal
|
|
from ipatests.test_xmlrpc import objectclasses
|
|
|
|
import six
|
|
|
|
if six.PY3:
|
|
unicode = str
|
|
|
|
|
|
class IdviewTracker(Tracker):
|
|
"""Class for idview tests"""
|
|
|
|
retrieve_keys = {
|
|
u'cn'
|
|
}
|
|
|
|
retrieve_all_keys = retrieve_keys | {
|
|
u'description', u'objectclass', u'dn'
|
|
}
|
|
|
|
create_keys = retrieve_all_keys
|
|
find_all_keys = retrieve_all_keys
|
|
|
|
def del_cert_from_idoverrideuser(self, username, cert):
|
|
result = api.Command.idoverrideuser_remove_cert(
|
|
self.cn, username, usercertificate=cert
|
|
)
|
|
return dict(
|
|
usercertificate=result['result'].get('usercertificate', []),
|
|
value=result.get('value'),
|
|
summary=result.get('summary')
|
|
)
|
|
|
|
def add_cert_to_idoverrideuser(self, username, cert):
|
|
result = api.Command.idoverrideuser_add_cert(
|
|
self.cn, username, usercertificate=cert
|
|
)
|
|
return dict(
|
|
usercertificate=result['result'].get('usercertificate', []),
|
|
value=result.get('value'),
|
|
summary=result.get('summary')
|
|
)
|
|
|
|
def __init__(self, cn, **kwargs):
|
|
super(IdviewTracker, self).__init__(default_version=None)
|
|
self.cn = cn
|
|
self.dn = DN(('cn', cn), api.env.container_views, api.env.basedn)
|
|
self.kwargs = kwargs
|
|
|
|
def make_create_command(self):
|
|
return self.make_command(
|
|
'idview_add', self.cn, **self.kwargs
|
|
)
|
|
|
|
def make_delete_command(self):
|
|
return self.make_command(
|
|
'idview_del', self.cn, **self.kwargs
|
|
)
|
|
|
|
def make_retrieve_command(self, all=False, raw=False):
|
|
""" Make function that retrieves a idview using idview-show """
|
|
return self.make_command('idview_show', self.cn, all=all)
|
|
|
|
def make_find_command(self, *args, **kwargs):
|
|
""" Make function that finds idview using idview-find """
|
|
return self.make_command('idview_find', *args, **kwargs)
|
|
|
|
def make_update_command(self, updates):
|
|
""" Make function that updates idview using idview-mod """
|
|
return self.make_command('idview_mod', self.cn, **updates)
|
|
|
|
def track_create(self):
|
|
self.attrs = dict(
|
|
cn=(self.cn,),
|
|
dn=unicode(self.dn),
|
|
idoverrideusers=[],
|
|
objectclass=objectclasses.idview
|
|
)
|
|
if 'description' in self.kwargs:
|
|
self.attrs['description'] = self.kwargs['description']
|
|
self.exists = True
|
|
|
|
def make_add_idoverrideuser_command(self, username, options=None):
|
|
options = options or {}
|
|
""" Make function that adds a member to a group """
|
|
return self.make_command('idoverrideuser_add', self.cn, username,
|
|
**options)
|
|
|
|
def idoverrideuser_add(self, user):
|
|
command = self.make_add_idoverrideuser_command(user.name)
|
|
result = command()
|
|
self.attrs['idoverrideusers'].append(result['value'])
|
|
self.check_idoverrideuser_add(result, user)
|
|
|
|
def check_create(self, result, extra_keys=()):
|
|
""" Check 'user-add' command result """
|
|
expected = self.filter_attrs(self.create_keys | set(extra_keys))
|
|
assert_deepequal(dict(
|
|
summary=u'Added ID View "%s"' % self.cn,
|
|
result=self.filter_attrs(expected),
|
|
value=self.cn
|
|
), result)
|
|
|
|
def check_idoverrideuser_add(self, result, user):
|
|
""" Checks 'group_add_member' command result """
|
|
assert_deepequal(
|
|
u'Added User ID override "%s"' % user.name,
|
|
result['summary']
|
|
)
|