freeipa/ipatests/test_xmlrpc/tracker/idview_plugin.py
Oleg Fayans ccd3677b50 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>
2016-11-29 18:30:44 +01:00

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']
)