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))])
Exemple #2
0
    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)
Exemple #3
0
    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'],
            ]
        ])
Exemple #4
0
    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"
Exemple #5
0
    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)
Exemple #6
0
 def setUp(self):
     data = {}
     for oc, text in OBJECTCLASSES.items():
         data[oc] = schema.ObjectClassDescription(text)
     self.data = data