Esempio n. 1
0
    def test_search_with_None_default(self):
        self.delete_at_teardown.append(add_user(self.connection, testcase_id, 'abstract-member-12'))

        ou = ObjectDef('inetOrgPerson')
        ou += AttrDef('cn', 'CommonName')
        ou += AttrDef('employeeType', key='Employee', default=None)
        qu = 'CommonName := ' + testcase_id + 'abstract-member-12'
        ru = Reader(self.connection, ou, qu, test_base)
        lu = ru.search()
        self.assertEqual(lu[0].employee.value, None)
Esempio n. 2
0
    def test_create_query_filter_single_attribute_single_value(self):
        o = ObjectDef()
        o += AttrDef('cn', 'Common Name')

        query_text = 'Common Name:John'
        r = Reader(None, o, query_text, base=test_base)

        r._create_query_filter()

        self.assertEqual('(cn=John)', r.query_filter)
Esempio n. 3
0
    def test_search_with_None_default(self):
        self.delete_at_teardown.append(add_user(self.connection, testcase_id, "abstract-member-12"))

        ou = ObjectDef("inetOrgPerson")
        ou += AttrDef("cn", "CommonName")
        ou += AttrDef("employeeType", key="Employee", default=None)
        qu = "CommonName := " + testcase_id + "abstract-member-12"
        ru = Reader(self.connection, ou, qu, test_base)
        lu = ru.search()
        self.assertEqual(lu[0].employee.value, None)
Esempio n. 4
0
    def test_create_query_filter_single_attribute_multiple_value(self):
        o = ObjectDef()
        o += AttrDef('cn', 'Common Name')

        query_text = '|Common Name:=john;=Bob'
        r = Reader(None, o, query_text, base=test_base)

        r._create_query_filter()

        self.assertEqual('(|(cn=Bob)(cn=john))', r.query_filter)
Esempio n. 5
0
    def test_search_with_None_default(self):
        self.delete_at_teardown.append(add_user(self.connection, testcase_id, 'abstract-member-12'))

        ou = ObjectDef('inetOrgPerson')
        ou += AttrDef('cn', 'CommonName')
        ou += AttrDef('employeeType', key='Employee', default=None)
        qu = 'CommonName := ' + testcase_id + 'abstract-member-12'
        ru = Reader(self.connection, ou, qu, test_base)
        lu = ru.search()
        self.assertEqual(lu[0].employee.value, None)
Esempio n. 6
0
    def test_create_query_filter_with_object_class(self):
        o = ObjectDef('inetOrgPerson')
        o += AttrDef('cn', 'Common Name')
        o += AttrDef('sn', 'Surname')
        o += AttrDef('givenName', 'Given Name')

        query_text = '|Common Name:=john;=Bob, Surname:=smith'
        r = Reader(None, o, query_text, base=test_base)

        r._create_query_filter()

        self.assertEqual('(&(objectClass=inetOrgPerson)(sn=smith)(|(cn=Bob)(cn=john)))', r.query_filter)
Esempio n. 7
0
    def test_validate_query_filter(self):
        o = ObjectDef()
        o += AttrDef('cn', 'Common Name')
        o += AttrDef('sn', 'Surname')
        o += AttrDef('givenName', 'Given Name')

        query_text = '|Common Name:=john;=Bob, Surname:=smith'
        r = Reader(None, o, query_text, base=test_base)

        r._validate_query()

        self.assertEqual('Surname: =smith, |CommonName: =Bob;=john', r.validated_query)
    def test_create_query_filter(self):
        o = ObjectDef()
        o += AttrDef('cn', 'Common Name')
        o += AttrDef('sn', 'Surname')
        o += AttrDef('givenName', 'Given Name')

        query_text = '|Common Name:=john;Bob, Surname:=smith'
        r = Reader(None, o, query_text, base='o=test')

        r._create_query_filter()

        self.assertEqual('(&(sn=smith)(|(cn=Bob)(cn=john)))', r.query_filter)
Esempio n. 9
0
    def test_search_filter_with_object_class(self):
        self.delete_at_teardown.append(add_user(self.connection, testcase_id, "abs-1"))
        self.delete_at_teardown.append(add_user(self.connection, testcase_id, "abs-2"))
        self.delete_at_teardown.append(add_user(self.connection, testcase_id, "abs-3"))
        self.delete_at_teardown.append(add_group(self.connection, testcase_id, "abs-grp", self.delete_at_teardown))
        reverse = lambda a, e: e[::-1]
        o = ObjectDef("inetOrgPerson")
        o += AttrDef("cn", "Common Name")
        o += AttrDef("sn", "Surname")
        o += AttrDef("givenName", "Given Name", post_query=reverse)

        query_text = "Common Name:=" + testcase_id + "abs-*"
        r = Reader(self.connection, o, query_text, test_base)

        results = r.search()
        self.assertEqual(len(results), 3)
Esempio n. 10
0
    def test_search_filter_with_object_class(self):
        self.delete_at_teardown.append(add_user(self.connection, testcase_id, 'abs-1'))
        self.delete_at_teardown.append(add_user(self.connection, testcase_id, 'abs-2'))
        self.delete_at_teardown.append(add_user(self.connection, testcase_id, 'abs-3'))
        self.delete_at_teardown.append(add_group(self.connection, testcase_id, 'abs-grp', self.delete_at_teardown))
        reverse = lambda a, e: e[::-1]
        o = ObjectDef('inetOrgPerson')
        o += AttrDef('cn', 'Common Name')
        o += AttrDef('sn', 'Surname')
        o += AttrDef('givenName', 'Given Name', post_query=reverse)

        query_text = 'Common Name:=' + testcase_id + 'abs-*'
        r = Reader(self.connection, o, query_text, test_base)

        results = r.search()
        self.assertEqual(len(results), 3)
Esempio n. 11
0
    def test_search_filter_with_object_class(self):
        self.delete_at_teardown.append(add_user(self.connection, testcase_id, 'abs-1'))
        self.delete_at_teardown.append(add_user(self.connection, testcase_id, 'abs-2'))
        self.delete_at_teardown.append(add_user(self.connection, testcase_id, 'abs-3'))
        self.delete_at_teardown.append(add_group(self.connection, testcase_id, 'abs-grp', self.delete_at_teardown))
        reverse = lambda a, e: e[::-1]
        o = ObjectDef('inetOrgPerson')
        o += AttrDef('cn', 'Common Name')
        o += AttrDef('sn', 'Surname')
        o += AttrDef('givenName', 'Given Name', post_query=reverse)

        query_text = 'Common Name:=' + testcase_id + 'abs-*'
        r = Reader(self.connection, o, query_text, test_base)

        results = r.search()
        self.assertEqual(len(results), 3)
Esempio n. 12
0
    def test_search_with_pre_query(self):
        change = lambda attr, value: testcase_id + 'abstract-member-*'

        self.delete_at_teardown.append(add_user(self.connection, testcase_id, 'abstract-member-7'))
        self.delete_at_teardown.append(add_user(self.connection, testcase_id, 'abstract-member-8'))
        self.delete_at_teardown.append(add_user(self.connection, testcase_id, 'abstract-member-9'))
        self.delete_at_teardown.append(add_group(self.connection, testcase_id, 'abstract-group', self.delete_at_teardown))

        ou = ObjectDef('inetOrgPerson')
        ou += AttrDef('cn', 'Common Name', pre_query=change)
        ou += AttrDef('sn', 'Surname')
        ou += AttrDef('givenName', 'Given Name')
        ou += AttrDef('ACL')
        qu = 'Common Name := bug'
        ru = Reader(self.connection, ou, qu, test_base)
        lu = ru.search()
        self.assertEqual(len(lu), 3)
Esempio n. 13
0
    def test_search_with_pre_query(self):
        change = lambda attr, value: testcase_id + 'abstract-member-*'

        self.delete_at_teardown.append(add_user(self.connection, testcase_id, 'abstract-member-7'))
        self.delete_at_teardown.append(add_user(self.connection, testcase_id, 'abstract-member-8'))
        self.delete_at_teardown.append(add_user(self.connection, testcase_id, 'abstract-member-9'))
        self.delete_at_teardown.append(add_group(self.connection, testcase_id, 'abstract-group', self.delete_at_teardown))

        ou = ObjectDef('inetOrgPerson')
        ou += AttrDef('cn', 'Common Name', pre_query=change)
        ou += AttrDef('sn', 'Surname')
        ou += AttrDef('givenName', 'Given Name')
        ou += AttrDef('ACL')
        qu = 'Common Name := bug'
        ru = Reader(self.connection, ou, qu, test_base)
        lu = ru.search()
        self.assertEqual(len(lu), 3)
Esempio n. 14
0
    def test_search_with_pre_query(self):
        change = lambda attr, value: testcase_id + "abstract-member-*"

        self.delete_at_teardown.append(add_user(self.connection, testcase_id, "abstract-member-7"))
        self.delete_at_teardown.append(add_user(self.connection, testcase_id, "abstract-member-8"))
        self.delete_at_teardown.append(add_user(self.connection, testcase_id, "abstract-member-9"))
        self.delete_at_teardown.append(
            add_group(self.connection, testcase_id, "abstract-group", self.delete_at_teardown)
        )

        ou = ObjectDef("inetOrgPerson")
        ou += AttrDef("cn", "Common Name", pre_query=change)
        ou += AttrDef("sn", "Surname")
        ou += AttrDef("givenName", "Given Name")
        ou += AttrDef("ACL")
        qu = "Common Name := bug"
        ru = Reader(self.connection, ou, qu, test_base)
        lu = ru.search()
        self.assertEqual(len(lu), 3)
Esempio n. 15
0
    def test_search_with_dereference(self):
        reverse = lambda a, e: e[::-1]

        def raise_parentheses_rank(_, l):
            up = {"(": "[", ")": "]", "[": "{", "]": "}", "{": "<", "}": ">"}
            r = []
            for e in l:
                s = ""
                for c in e:
                    s += up[c] if c in up else c
                r.append(s)

            return r

        self.delete_at_teardown.append(add_user(self.connection, testcase_id, "abstract-member-4"))
        self.delete_at_teardown.append(add_user(self.connection, testcase_id, "abstract-member-5"))
        self.delete_at_teardown.append(add_user(self.connection, testcase_id, "abstract-member-6"))
        self.delete_at_teardown.append(
            add_group(self.connection, testcase_id, "abstract-group", self.delete_at_teardown)
        )
        ou = ObjectDef("inetOrgPerson")
        ou += AttrDef("cn", "Common Name", post_query=reverse)
        ou += AttrDef("sn", "Surname")
        ou += AttrDef("givenName", "Given Name", post_query=raise_parentheses_rank)
        ou += AttrDef("ACL")
        qu = "Common Name: " + testcase_id + "abstract-member-*"
        ru = Reader(self.connection, ou, qu, test_base)
        lu = ru.search()
        self.assertEqual(len(lu), 3)

        og = ObjectDef("groupOfNames")
        og += AttrDef("member", dereference_dn=ou)
        og += "cn"
        qg = "cn := " + testcase_id + "abstract-group"
        rg = Reader(self.connection, og, qg, test_base)
        lg = rg.search()
        self.assertEqual(len(lg), 1)

        eg = lg[0]
        mg = eg.member
        self.assertEqual(len(mg), 3)
        ug = eg.member[0]
        self.assertTrue(str(ug.surname) in ["abstract-member-4", "abstract-member-5", "abstract-member-6"])
Esempio n. 16
0
    def test_search_with_dereference(self):
        reverse = lambda a, e: e[::-1]

        def raise_parentheses_rank(_, l):
            up = {'(': '[', ')': ']', '[': '{', ']': '}', '{': '<', '}': '>'}
            r = []
            for e in l:
                s = ''
                for c in e:
                    s += up[c] if c in up else c
                r.append(s)

            return r

        self.delete_at_teardown.append(add_user(self.connection, testcase_id, 'abstract-member-4'))
        self.delete_at_teardown.append(add_user(self.connection, testcase_id, 'abstract-member-5'))
        self.delete_at_teardown.append(add_user(self.connection, testcase_id, 'abstract-member-6'))
        self.delete_at_teardown.append(add_group(self.connection, testcase_id, 'abstract-group', self.delete_at_teardown))
        ou = ObjectDef('inetOrgPerson')
        ou += AttrDef('cn', 'Common Name', post_query=reverse)
        ou += AttrDef('sn', 'Surname')
        ou += AttrDef('givenName', 'Given Name', post_query=raise_parentheses_rank)
        ou += AttrDef('ACL')
        qu = 'Common Name: ' + testcase_id + 'abstract-member-*'
        ru = Reader(self.connection, ou, qu, test_base)
        lu = ru.search()
        self.assertEqual(len(lu), 3)

        og = ObjectDef('groupOfNames')
        og += AttrDef('member', dereference_dn=ou)
        og += 'cn'
        qg = 'cn := ' + testcase_id + 'abstract-group'
        rg = Reader(self.connection, og, qg, test_base)
        lg = rg.search()
        self.assertEqual(len(lg), 1)

        eg = lg[0]
        mg = eg.member
        self.assertEqual(len(mg), 3)
        ug = eg.member[0]
        self.assertTrue(str(ug.surname) in ['abstract-member-4', 'abstract-member-5', 'abstract-member-6'])
Esempio n. 17
0
    def test_search_with_dereference(self):
        reverse = lambda a, e: e[::-1]

        def raise_parentheses_rank(_, l):
            up = {'(': '[', ')': ']', '[': '{', ']': '}', '{': '<', '}': '>'}
            r = []
            for e in l:
                s = ''
                for c in e:
                    s += up[c] if c in up else c
                r.append(s)

            return r

        self.delete_at_teardown.append(
            add_user(self.connection, testcase_id, 'abstract-member-4'))
        self.delete_at_teardown.append(
            add_user(self.connection, testcase_id, 'abstract-member-5'))
        self.delete_at_teardown.append(
            add_user(self.connection, testcase_id, 'abstract-member-6'))
        self.delete_at_teardown.append(
            add_group(self.connection, testcase_id, 'abstract-group',
                      self.delete_at_teardown))
        ou = ObjectDef('inetOrgPerson')
        ou += AttrDef('cn', 'Common Name', post_query=reverse)
        ou += AttrDef('sn', 'Surname')
        ou += AttrDef('givenName',
                      'Given Name',
                      post_query=raise_parentheses_rank)
        ou += AttrDef('ACL')
        qu = 'Common Name: ' + testcase_id + 'abstract-member-*'
        ru = Reader(self.connection, ou, qu, test_base)
        lu = ru.search()
        self.assertEqual(len(lu), 3)

        og = ObjectDef('groupOfNames')
        og += AttrDef('member', dereference_dn=ou)
        og += 'cn'
        qg = 'cn := ' + testcase_id + 'abstract-group'
        rg = Reader(self.connection, og, qg, test_base)
        lg = rg.search()
        self.assertEqual(len(lg), 1)

        eg = lg[0]
        mg = eg.member
        self.assertEqual(len(mg), 3)
        ug = eg.member[0]
        self.assertTrue(
            str(ug.surname) in
            ['abstract-member-4', 'abstract-member-5', 'abstract-member-6'])
Esempio n. 18
0
def get_department_code(attr, value):
    for dep in deps.items():
        if dep[1] == value:
            return dep[0]
    return 'not a department'

# person += AttrDef('employeeStatus', key = 'Department', preQuery = getDepartmentCode)
getDepartmentName = lambda attr, value: deps.get(value, 'not a department') if attr == 'Department' else value
person += AttrDef('employeeStatus', key='Department', validate=validDepartment, pre_query=get_department_code, post_query=getDepartmentName)
department = ObjectDef('groupOfNames')
department += 'cn'
department += AttrDef('member', key='employeer', dereference_dn=person)  # values of 'employeer' will be the 'Person' entries members of the found department
s = Server('edir')
c = Connection(s, user='******', password='******')
query = 'Department: Accounting'  # explained in next paragraph
personReader = Reader(c, person, query, 'o=test')
personReader.search()
print(personReader)

personEntry = personReader.entries[0]
for attr in personEntry:
    print(attr)

personCommonName = personEntry.CommonName
for cn in personCommonName:
    print(cn)
    print(cn.rawValues)

myDepartment = personEntry.Department.value
Esempio n. 19
0
# person += AttrDef('employeeStatus', key = 'Department', preQuery = getDepartmentCode)
getDepartmentName = lambda attr, value: deps.get(
    value, 'not a department') if attr == 'Department' else value
person += AttrDef('employeeStatus',
                  key='Department',
                  validate=validDepartment,
                  pre_query=get_department_code,
                  post_query=getDepartmentName)
department = ObjectDef('groupOfNames')
department += 'cn'
department += AttrDef(
    'member', key='employeer', dereference_dn=person
)  # values of 'employeer' will be the 'Person' entries members of the found department
s = Server('edir')
c = Connection(s, user='******', password='******')
query = 'Department: Accounting'  # explained in next paragraph
personReader = Reader(c, person, query, 'o=test')
personReader.search()
print(personReader)

personEntry = personReader.entries[0]
for attr in personEntry:
    print(attr)

personCommonName = personEntry.CommonName
for cn in personCommonName:
    print(cn)
    print(cn.rawValues)

myDepartment = personEntry.Department.value