def test_modify_and_rename(self): with self.client.connect(True) as conn: entry = LDAPEntry("cn=async_test,%s" % self.basedn) entry['objectclass'] = [ 'top', 'inetOrgPerson', 'person', 'organizationalPerson' ] entry['sn'] = "async_test" oldname = "cn=async_test,%s" % self.basedn newname = "cn=async_test2,%s" % self.basedn res = conn.search(newname, 0) if res: res[0].delete() try: conn.add(entry) except bonsai.errors.AlreadyExists: conn.delete(entry.dn) conn.add(entry) except: self.fail("Unexcepected error.") entry['sn'] = "async_test2" entry.modify() entry.rename(newname) res = conn.search(entry.dn, 0, attrlist=['sn']) self.assertEqual(entry['sn'], res[0]['sn']) res = conn.search(oldname, 0) self.assertEqual(res, []) conn.delete(entry.dn)
def test_modify_and_rename(self): with self.client.connect(True) as conn: entry = LDAPEntry("cn=async_test,%s" % self.basedn) entry['objectclass'] = ['top', 'inetOrgPerson', 'person', 'organizationalPerson'] entry['sn'] = "async_test" oldname = "cn=async_test,%s" % self.basedn newname = "cn=async_test2,%s" % self.basedn res = conn.search(newname, 0) if res: res[0].delete() try: conn.add(entry) except bonsai.errors.AlreadyExists: conn.delete(entry.dn) conn.add(entry) except: self.fail("Unexcepected error.") entry['sn'] = "async_test2" entry.modify() entry.rename(newname) res = conn.search(entry.dn, 0, attrlist=['sn']) self.assertEqual(entry['sn'], res[0]['sn']) res = conn.search(oldname, 0) self.assertEqual(res, []) conn.delete(entry.dn)
def test_modify_and_rename(gclient, basedn): """ Test modifying and renaming LDAP entry. """ with gclient.connect(True) as conn: entry = LDAPEntry("cn=async_test,%s" % basedn) entry["objectclass"] = [ "top", "inetOrgPerson", "person", "organizationalPerson", ] entry["sn"] = "async_test" oldname = "cn=async_test,%s" % basedn newname = "cn=async_test2,%s" % basedn res = conn.search(newname, 0) if res: res[0].delete() try: conn.add(entry) except bonsai.errors.AlreadyExists: conn.delete(entry.dn) conn.add(entry) except: pytest.fail("Unexpected error.") entry["sn"] = "async_test2" entry.modify() entry.rename(newname) res = conn.search(entry.dn, 0, attrlist=["sn"]) assert entry["sn"] == res[0]["sn"] res = conn.search(oldname, 0) assert res == [] conn.delete(entry.dn)
def test_rename(self): """ Test LDAPEntry's rename LDAP operation. """ entry = LDAPEntry("cn=test,%s" % self.basedn) self.client.set_credentials(*self.creds) with self.client.connect() as conn: self._add_for_renaming(conn, entry) entry.rename("cn=test2,%s" % self.basedn) self.assertEqual(str(entry.dn), "cn=test2,%s" % self.basedn) obj = conn.search("cn=test,%s" % self.basedn, 0) self.assertEqual(obj, []) obj = conn.search("cn=test2,%s" % self.basedn, 0)[0] self.assertEqual(entry.dn, obj.dn) entry.delete()
def test_rename_error(self): """ Test LDAPEntry's rename error handling. """ dname = bonsai.LDAPDN("cn=test,%s" % self.basedn) entry = LDAPEntry(dname) self.client.set_credentials(*self.creds) with self.client.connect() as conn: self._add_for_renaming(conn, entry) try: newdn = bonsai.LDAPDN("cn=test2,ou=invalid,%s" % self.basedn) entry.rename(newdn) except bonsai.LDAPError: self.assertEqual(entry.dn, dname) finally: conn.delete(dname)
def test_modify_and_rename(self): """ Test modifying and renaming an LDAP entry. """ with (yield self.client.connect(True, ioloop=self.io_loop)) as conn: entry = LDAPEntry("cn=async_test,%s" % self.basedn) entry["objectclass"] = [ "top", "inetOrgPerson", "person", "organizationalPerson", ] entry["sn"] = "async_test" oldname = "cn=async_test,%s" % self.basedn newname = "cn=async_test2,%s" % self.basedn res = yield conn.search(newname, 0) if res: yield res[0].delete() try: yield conn.add(entry) except bonsai.errors.AlreadyExists: yield conn.delete(entry.dn) yield conn.add(entry) except: self.fail("Unexpected error.") entry["sn"] = "async_test2" yield entry.modify() yield entry.rename(newname) res = yield conn.search(entry.dn, 0, attrlist=["sn"]) assert entry["sn"] == res[0]["sn"] res = yield conn.search(oldname, 0) assert res == [] yield conn.delete(entry.dn)
def test_modify_and_rename(self): """ Test modifying and renaming an LDAP entry. """ with (yield self.client.connect(True, ioloop=self.io_loop)) as conn: entry = LDAPEntry("cn=async_test,%s" % self.basedn) entry['objectclass'] = [ 'top', 'inetOrgPerson', 'person', 'organizationalPerson' ] entry['sn'] = "async_test" oldname = "cn=async_test,%s" % self.basedn newname = "cn=async_test2,%s" % self.basedn res = yield conn.search(newname, 0) if res: yield res[0].delete() try: yield conn.add(entry) except bonsai.errors.AlreadyExists: yield conn.delete(entry.dn) yield conn.add(entry) except: self.fail("Unexpected error.") entry['sn'] = "async_test2" yield entry.modify() yield entry.rename(newname) res = yield conn.search(entry.dn, 0, attrlist=['sn']) self.assertEqual(entry['sn'], res[0]['sn']) res = yield conn.search(oldname, 0) self.assertEqual(res, []) yield conn.delete(entry.dn)
def test_rename_error(client, basedn, test_entry): """ Test LDAPEntry's rename error handling. """ dname = bonsai.LDAPDN("cn=test,%s" % basedn) entry = LDAPEntry(dname) with pytest.raises(ValueError): entry.rename("cn=test2") with client.connect() as conn: entry = test_entry(conn, dname) with pytest.raises(TypeError): entry.rename(0) with pytest.raises(TypeError): entry.rename(0, delete_old_rdn=0) try: newdn = bonsai.LDAPDN("cn=test2,ou=invalid,%s" % basedn) entry.rename(newdn) except bonsai.LDAPError: assert entry.dn == dname with pytest.raises(bonsai.errors.ClosedConnection): entry.rename("cn=test2")