mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-01-12 17:21:55 -06:00
Created idview tracker
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>
This commit is contained in:
parent
76d4368ff9
commit
62061a3a04
116
ipatests/test_xmlrpc/tracker/idview_plugin.py
Normal file
116
ipatests/test_xmlrpc/tracker/idview_plugin.py
Normal file
@ -0,0 +1,116 @@
|
||||
#
|
||||
# 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']
|
||||
)
|
Loading…
Reference in New Issue
Block a user