def _cb_testSimple(self, val, client): client.assertSent( pureldap.LDAPSearchRequest( baseObject='dc=example,dc=com', scope=pureldap.LDAP_SCOPE_baseObject, derefAliases=pureldap.LDAP_DEREF_neverDerefAliases, sizeLimit=1, timeLimit=0, typesOnly=0, filter=pureldap.LDAPFilter_present('objectClass'), attributes=['subschemaSubentry']), pureldap.LDAPSearchRequest( baseObject='cn=Subschema', scope=pureldap.LDAP_SCOPE_baseObject, derefAliases=pureldap.LDAP_DEREF_neverDerefAliases, sizeLimit=1, timeLimit=0, typesOnly=0, filter=pureldap.LDAPFilter_present('objectClass'), attributes=['attributeTypes', 'objectClasses']), ) self.failUnlessEqual(len(val), 2) self.failUnlessEqual([str(x) for x in val[0]], [str(schema.AttributeTypeDescription(self.cn))]) self.failUnlessEqual( [str(x) for x in val[1]], [str(schema.ObjectClassDescription(self.dcObject))])
def testStringification(self): for want, values in self.knownValues: a = schema.ObjectClassDescription(None) for key, val in values.items(): setattr(a, key, val) want = ' '.join(want.split(None)) got = ' '.join(str(a).split(None)) self.assertEquals(got, want)
def testSimple(self): d = fetchschema.fetch(self.client, 'dc=example,dc=com') (attributeTypes, objectClasses) = util.pumpingDeferredResult(d) self.failUnlessEqual([str(x) for x in attributeTypes], [ str(schema.AttributeTypeDescription(x)) for x in [ test_schema.AttributeType_KnownValues.knownValues[0][0], ] ]) self.failUnlessEqual([str(x) for x in objectClasses], [ str(schema.ObjectClassDescription(x)) for x in [ test_schema.OBJECTCLASSES['organization'], test_schema.OBJECTCLASSES['organizationalUnit'], ] ])
def handleSearchResults(l): if len(l) == 0: raise ldaperrors.LDAPOther, "No such DN" elif len(l) == 1: o = l[0] attributeTypes = [] objectClasses = [] for text in o.get("attributeTypes", []): attributeTypes.append( schema.AttributeTypeDescription(str(text))) for text in o.get("objectClasses", []): objectClasses.append(schema.ObjectClassDescription(str(text))) assert attributeTypes, "LDAP server doesn't give attributeTypes for subschemaSubentry dn=%s" % o.dn return (attributeTypes, objectClasses) else: raise ldaperrors.LDAPOther, "DN matched multiple entries"
def testParse(self): defaults = { 'name': None, 'desc': None, 'obsolete': 0, 'sup': None, 'type': 'STRUCTURAL', 'must': [], 'may': [], } for text, expected in self.knownValues: a = schema.ObjectClassDescription(text) self.failIfEqual(a.oid, None) for key, want in expected.items(): if key in defaults: del defaults[key] got = getattr(a, key) self.assertEquals(got, want) for key, want in defaults.items(): got = getattr(a, key) self.assertEquals(got, want)
def setUp(self): data = {} for oc, text in OBJECTCLASSES.items(): data[oc] = schema.ObjectClassDescription(text) self.data = data