summaryrefslogtreecommitdiffstats
path: root/ipatests
diff options
context:
space:
mode:
authorJan Cholasta <jcholast@redhat.com>2014-07-31 10:22:23 +0200
committerPetr Viktorin <pviktori@redhat.com>2014-08-04 11:21:32 +0200
commit34de95545d0a09de2f1acc6987edc27feb762c1b (patch)
treeeceafb44d3c3d0edb8c2f857cd6f15ad66af73f4 /ipatests
parent80733bff15a764bab45f5a9b468072e9636ef1d3 (diff)
downloadfreeipa-34de95545d0a09de2f1acc6987edc27feb762c1b.tar.gz
freeipa-34de95545d0a09de2f1acc6987edc27feb762c1b.tar.xz
freeipa-34de95545d0a09de2f1acc6987edc27feb762c1b.zip
Add test for baseldap.entry_to_dict.
Reviewed-By: Petr Viktorin <pviktori@redhat.com>
Diffstat (limited to 'ipatests')
-rw-r--r--ipatests/test_xmlrpc/test_baseldap_plugin.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/ipatests/test_xmlrpc/test_baseldap_plugin.py b/ipatests/test_xmlrpc/test_baseldap_plugin.py
index 6a8501f76..1a4bb0f54 100644
--- a/ipatests/test_xmlrpc/test_baseldap_plugin.py
+++ b/ipatests/test_xmlrpc/test_baseldap_plugin.py
@@ -21,8 +21,13 @@
Test the `ipalib.plugins.baseldap` module.
"""
+import ldap
+
+from ipapython.dn import DN
+from ipapython import ipaldap
from ipalib import errors
from ipalib.plugins import baseldap
+from ipatests.util import assert_deepequal
def test_exc_wrapper():
@@ -157,3 +162,47 @@ def test_exc_callback_registration():
messages = []
subclass_instance.test_fail()
assert messages == ['Base exc_callback', 'Subclass registered callback']
+
+
+def test_entry_to_dict():
+ class FakeAttributeType(object):
+ def __init__(self, name, syntax):
+ self.names = (name,)
+ self.syntax = syntax
+
+ class FakeSchema(object):
+ def get_obj(self, type, name):
+ if type != ldap.schema.AttributeType:
+ return
+ if name == 'binaryattr':
+ return FakeAttributeType(name, '1.3.6.1.4.1.1466.115.121.1.40')
+ elif name == 'textattr':
+ return FakeAttributeType(name, '1.3.6.1.4.1.1466.115.121.1.15')
+ elif name == 'dnattr':
+ return FakeAttributeType(name, '1.3.6.1.4.1.1466.115.121.1.12')
+
+ class FakeIPASimpleLDAPObject(ipaldap.IPASimpleLDAPObject):
+ def __init__(self):
+ super(FakeIPASimpleLDAPObject, self).__init__('ldap://test', False)
+ self._schema = FakeSchema()
+ self._has_schema = True
+
+ conn = FakeIPASimpleLDAPObject()
+ rights = {'nothing': 'is'}
+
+ entry = ipaldap.LDAPEntry(
+ conn,
+ DN('cn=test'),
+ textattr=[u'text'],
+ dnattr=[DN('cn=test')],
+ binaryattr=['\xffabcd'],
+ attributelevelrights=rights)
+ the_dict = {
+ u'dn': u'cn=test',
+ u'textattr': [u'text'],
+ u'dnattr': [u'cn=test'],
+ u'binaryattr': ['\xffabcd'],
+ u'attributelevelrights': rights}
+ assert_deepequal(
+ baseldap.entry_to_dict(entry, all=True, raw=True),
+ the_dict)