mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-01-12 09:11:55 -06:00
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']
|
||
|
)
|