Beispiel #1
0
 def test_create_new_entry(self):
     w = Writer(self.connection, 'inetorgperson')
     n = w.new('cn=abstraction-create,' + test_base)
     try:
         n.entry_commit_changes()
     except LDAPCursorError:
         pass
Beispiel #2
0
 def test_create_new_entry_valid_and_move_after_commit(self):
     w = Writer(self.connection, 'inetorgperson')
     n = w.new('cn=' + testcase_id + 'new-7,' + test_base)
     n.sn = 'sn-test-7'
     self.assertEqual(n.entry_status, STATUS_PENDING_CHANGES)
     n.entry_commit_changes()
     self.assertEqual(n.sn, 'sn-test-7')
     self.assertEqual(n.entry_status, STATUS_COMMITTED)
     n.entry_move(test_moved)
     self.assertEqual(n.entry_status, STATUS_READY_FOR_MOVING)
     sleep(5)
     n.entry_commit_changes()
     self.assertEqual(n.entry_status, STATUS_COMMITTED)
     n.entry_delete()
     self.assertEqual(n.entry_status, STATUS_READY_FOR_DELETION)
     counter = 20
     while counter > 0:
         try:
             n.entry_commit_changes()
             if n.entry_status == STATUS_DELETED:
                 break
         except LDAPCursorError:
             pass
         counter -= 1
         sleep(3)
     self.assertEqual(n.entry_status, STATUS_DELETED)
 def test_create_invalid_entry_with_attribute_from_auxiliary_class_not_declared(
         self):
     w = Writer(self.connection, 'inetorgperson')
     n = w.new('cn=' + testcase_id + 'new-2,' + test_base)
     n.sn = 'sn-test-2'
     with self.assertRaises(LDAPCursorError):
         n.homeState = 'state-test-2'
Beispiel #4
0
    def test_read_entry_with_attribute_from_auxiliary_class(self):
        if test_server_type != 'AD':
            w = Writer(self.connection,
                       'inetorgperson',
                       auxiliary_class='homeInfo')
            n = w.new('cn=' + testcase_id + 'new-3,' + test_base)
            n.sn = 'sn-test-3'
            n.homeState = 'state-test-3'
            self.assertEqual(n.entry_status, STATUS_PENDING_CHANGES)
            n.entry_commit_changes()
            self.assertEqual(n.sn, 'sn-test-3')
            self.assertEqual(n.homeState, 'state-test-3')
            self.assertEqual(n.entry_status, STATUS_COMMITTED)

            r = Reader(self.connection,
                       'inetorgperson',
                       test_base,
                       '(cn=' + testcase_id + 'new-3',
                       auxiliary_class='homeInfo')
            r.search()
            self.assertTrue(r[0].cn, testcase_id + 'new-3')
            self.assertTrue(r[0].homeState, testcase_id + 'state-test-3')
            w1 = Writer.from_cursor(r)
            w1[0].entry_delete()
            w1.commit()
Beispiel #5
0
 def test_create_new_entry_valid_and_rename_before_commit(self):
     w = Writer(self.connection, 'inetorgperson')
     n = w.new('cn=' + testcase_id + 'new-4,' + test_base)
     n.sn = 'sn-test-4'
     self.assertEqual(n.entry_status, STATUS_PENDING_CHANGES)
     try:
         n.entry_rename('cn=' + testcase_id + 'new-4-renamed')
     except LDAPCursorError:
         pass
Beispiel #6
0
 def test_create_new_entry_valid_and_move_before_commit(self):
     w = Writer(self.connection, 'inetorgperson')
     n = w.new('cn=' + testcase_id + 'abstraction-create-6,' + test_base)
     self.assertEqual(n.entry_status, STATUS_MANDATORY_MISSING)
     n.sn = 'sn-test-6'
     self.assertEqual(n.entry_status, STATUS_PENDING_CHANGES)
     try:
         n.entry_move(test_moved)
     except LDAPCursorError:
         pass
Beispiel #7
0
 def test_create_new_entry_invalid_mandatory(self):
     if test_server_type == 'EDIR':
         w = Writer(self.connection, 'inetorgperson')
         n = w.new('cn=' + testcase_id + 'new-1,' + test_base)
         self.assertTrue('sn' in n.entry_mandatory_attributes)
         self.assertTrue(n.entry_status in [STATUS_MANDATORY_MISSING])
         try:
             n.entry_commit_changes()
         except LDAPCursorError:
             return
         self.fail('Entry created with missing attributes')
Beispiel #8
0
 def test_create_new_entry_invalid_mandatory(self):
     w = Writer(self.connection, 'inetorgperson')
     n = w.new('cn=' + testcase_id + 'abstraction-create-1,' + test_base)
     self.assertTrue('sn' in n.entry_mandatory_attributes)
     self.assertTrue('cn' in n.entry_mandatory_attributes)
     self.assertTrue('objectClass' in n.entry_mandatory_attributes)
     self.assertEqual(n.entry_status, STATUS_MANDATORY_MISSING)
     try:
         n.entry_commit_changes()
     except LDAPCursorError:
         pass
Beispiel #9
0
 def test_create_new_entry_valid_mandatory_only(self):
     w = Writer(self.connection, 'inetorgperson')
     n = w.new('cn=' + testcase_id + 'new-2,' + test_base)
     n.sn = 'sn-test-2'
     self.assertEqual(n.entry_status, STATUS_PENDING_CHANGES)
     n.entry_commit_changes()
     self.assertEqual(n.sn, 'sn-test-2')
     self.assertEqual(n.entry_status, STATUS_COMMITTED)
     n.entry_delete()
     self.assertEqual(n.entry_status, STATUS_READY_FOR_DELETION)
     n.entry_commit_changes()
     self.assertEqual(n.entry_status, STATUS_DELETED)
Beispiel #10
0
 def save_object(self, object):
     if not object.entry:
         object.entry = Writer(ldap_conn, object_def=obj_inetorgperson).new(
             username_to_dn(object.username))
         object.entry_is_writable = True
     else:
         object.convert_to_writable()
     object.id = object.entry.entry_dn
     object.entry.userPassword = object.password
     object.entry.mail = object.email or ""
     object.entry.displayName = object.displayName or object.username
     object.entry.sn = object.displayName or object.username
     assert object.entry.entry_commit_changes()
Beispiel #11
0
 def test_create_new_entry_valid_mandatory_only_case_insensitive_attribute_names(self):
     w = Writer(self.connection, 'inetorgperson')
     n = w.new('CN=' + testcase_id + 'abstraction-create-8,' + test_base)
     self.assertEqual(n.entry_status, STATUS_MANDATORY_MISSING)
     n.sn = 'sn-test-8'
     self.assertEqual(n.entry_status, STATUS_PENDING_CHANGES)
     n.entry_commit_changes()
     self.assertEqual(n.sn, 'sn-test-8')
     self.assertEqual(n.entry_status, STATUS_COMMITTED)
     n.entry_delete()
     self.assertEqual(n.entry_status, STATUS_READY_FOR_DELETION)
     n.entry_commit_changes()
     self.assertEqual(n.entry_status, STATUS_DELETED)
Beispiel #12
0
 def test_create_new_entry_valid_mandatory_and_optional(self):
     w = Writer(self.connection, 'inetorgperson')
     n = w.new('cn=' + testcase_id + 'abstraction-create-3,' + test_base)
     self.assertEqual(n.entry_status, STATUS_MANDATORY_MISSING)
     n.sn = 'sn-test-3'
     n.postalAddress = 'postal-address-3'
     self.assertEqual(n.entry_status, STATUS_PENDING_CHANGES)
     n.entry_commit_changes()
     self.assertEqual(n.sn, 'sn-test-3')
     self.assertEqual(n.postalAddress, 'postal-address-3')
     self.assertEqual(n.entry_status, STATUS_COMMITTED)
     n.entry_delete()
     self.assertEqual(n.entry_status, STATUS_READY_FOR_DELETION)
     n.entry_commit_changes()
     self.assertEqual(n.entry_status, STATUS_DELETED)
 def test_create_entry_with_attribute_from_auxiliary_class(self):
     if test_server_type != 'AD':
         w = Writer(self.connection,
                    'inetorgperson',
                    auxiliary_class='homeInfo')
         n = w.new('cn=' + testcase_id + 'new-1,' + test_base)
         n.sn = 'sn-test-1'
         n.homeState = 'state-test-1'
         self.assertEqual(n.entry_status, STATUS_PENDING_CHANGES)
         n.entry_commit_changes()
         self.assertEqual(n.sn, 'sn-test-1')
         self.assertEqual(n.homeState, 'state-test-1')
         self.assertEqual(n.entry_status, STATUS_COMMITTED)
         n.entry_delete()
         self.assertEqual(n.entry_status, STATUS_READY_FOR_DELETION)
         n.entry_commit_changes()
         self.assertEqual(n.entry_status, STATUS_DELETED)
Beispiel #14
0
 def test_create_new_entry_valid_and_rename_after_commit(self):
     w = Writer(self.connection, 'inetorgperson')
     n = w.new('cn=' + testcase_id + 'new-5,' + test_base)
     n.sn = 'sn-test-5'
     n.postalAddress = 'postal-address-5'
     self.assertEqual(n.entry_status, STATUS_PENDING_CHANGES)
     n.entry_commit_changes()
     self.assertEqual(n.sn, 'sn-test-5')
     self.assertEqual(n.postalAddress, 'postal-address-5')
     self.assertEqual(n.entry_status, STATUS_COMMITTED)
     n.entry_rename('cn=' + testcase_id + 'new-5-renamed')
     self.assertEqual(n.entry_status, STATUS_READY_FOR_RENAMING)
     n.entry_commit_changes()
     self.assertEqual(n.entry_status, STATUS_COMMITTED)
     n.entry_delete()
     self.assertEqual(n.entry_status, STATUS_READY_FOR_DELETION)
     n.entry_commit_changes()
     self.assertEqual(n.entry_status, STATUS_DELETED)
    def test_read_entry_with_attribute_from_missing_auxiliary_class(self):
        if test_server_type != 'AD':
            w = Writer(self.connection,
                       'inetorgperson',
                       auxiliary_class='homeInfo')
            n = w.new('cn=' + testcase_id + 'new-4,' + test_base)
            n.sn = 'sn-test-4'
            n.homeState = 'state-test-4'
            self.assertEqual(n.entry_status, STATUS_PENDING_CHANGES)
            n.entry_commit_changes()
            self.assertEqual(n.sn, 'sn-test-4')
            self.assertEqual(n.homeState, 'state-test-4')
            self.assertEqual(n.entry_status, STATUS_COMMITTED)

            r = Reader(self.connection, 'inetorgperson', test_base,
                       '(cn=' + testcase_id + 'new-4')
            r.search()
            self.assertTrue(r[0].cn, testcase_id + 'new-4')
            with self.assertRaises(LDAPCursorError):
                self.assertTrue(r[0].homeState, testcase_id + 'state-test-3')