def test_sync_operations(self): """ Test LDAPEntry's add, modify and delete synchronous operations. """ entry = LDAPEntry("cn=test,%s" % self.basedn) self.client.set_credentials(*self.creds) with self.client.connect() as conn: entry['sn'] = 'test' self.assertRaises(bonsai.ObjectClassViolation, lambda: conn.add(entry)) entry['objectclass'] = ['top', 'inetOrgPerson', 'person', 'organizationalPerson'] try: conn.add(entry) except bonsai.AlreadyExists: conn.delete(entry.dn) conn.add(entry) except: self.fail("Adding LDAPEntry to the server is failed.") entry['sn'] = "Test_modify" try: entry.modify() except: self.fail("Modify failed.") obj = conn.search("cn=test,%s" % self.basedn, 0)[0] self.assertEqual(entry['sn'], obj['sn']) try: entry.delete() except: self.fail("Delete failed.")
def test_sync_operations(self): """ Test LDAPEntry's add, modify and delete synchronous operations. """ entry = LDAPEntry("cn=test,%s" % self.basedn) self.client.set_credentials(*self.creds) with self.client.connect() as conn: entry['objectclass'] = [ 'top', 'inetOrgPerson', 'person', 'organizationalPerson' ] self.assertRaises(bonsai.ObjectClassViolation, lambda: conn.add(entry)) entry['sn'] = 'test' try: conn.add(entry) except bonsai.AlreadyExists: conn.delete(entry.dn) conn.add(entry) except: self.fail("Adding LDAPEntry to the server is failed.") entry['sn'] = "Test_modify" try: entry.modify() except: self.fail("Modify failed.") obj = conn.search("cn=test,%s" % self.basedn, 0)[0] self.assertEqual(entry['sn'], obj['sn']) try: entry.delete() except: self.fail("Delete failed.")
def test_special_char(client, basedn): """ Test adding entry with special character in its DN. """ with client.connect() as conn: entry = LDAPEntry(r"cn=test\, *\+withspec,%s" % basedn) entry["objectclass"] = ["top", "inetOrgPerson"] entry["sn"] = "Test,*special" conn.add(entry) result = conn.search(basedn, 1) entry.delete() assert entry.dn in [res.dn for res in result]
def test_unicode(client, basedn): """ Test adding entry with special character in its DN. """ with client.connect() as conn: dname = "cn=test_µčབྷñ,%s" % basedn entry = LDAPEntry(dname) entry["objectclass"] = ["top", "inetOrgPerson"] entry["sn"] = "unicode_µčབྷñ" conn.add(entry) result = conn.search(dname, 0) entry.delete() assert dname in [res.dn for res in result]
def test_special_char(self): """ Test adding entry with special character in its DN. """ self.client.set_credentials(*self.creds) conn = self.client.connect() entry = LDAPEntry("cn=test\, *\+withspec,%s" % self.basedn) entry['objectclass'] = ['top', 'inetOrgPerson'] entry['sn'] = "Test,*special" conn.add(entry) result = conn.search(self.basedn, 1) entry.delete() conn.close() self.assertIn(entry.dn, [res.dn for res in result])
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_unicode(self): """ Test adding entry with special character in its DN. """ self.client.set_credentials(*self.creds) conn = self.client.connect() dname = "cn=test_µčབྷñ,%s" % self.basedn entry = LDAPEntry(dname) entry['objectclass'] = ['top', 'inetOrgPerson'] entry['sn'] = "unicode_µčབྷñ" conn.add(entry) result = conn.search(dname, 0) entry.delete() conn.close() self.assertIn(dname, [res.dn for res in result])
def test_binary(client, basedn): """ Test adding binary data. """ curdir = os.path.abspath(os.path.dirname(__file__)) conn = client.connect() dname = "cn=binary,%s" % basedn entry = LDAPEntry(dname) entry["objectclass"] = ["top", "inetOrgPerson"] entry["sn"] = "binary_test" with open("%s/testenv/test.jpeg" % curdir, "rb") as image: entry["jpegPhoto"] = image.read() conn.add(entry) result = conn.search(dname, 0) entry.delete() conn.close() assert "jpegPhoto" in result[0].keys() assert result[0]["jpegphoto"][0] == entry["jpegphoto"][0]
def test_binary(self): """ Test adding binary data. """ curdir = os.path.abspath(os.path.dirname(__file__)) self.client.set_credentials(*self.creds) conn = self.client.connect() dname = "cn=binary,%s" % self.basedn entry = LDAPEntry(dname) entry['objectclass'] = ['top', 'inetOrgPerson'] entry['sn'] = "binary_test" with open('%s/testenv/test.jpeg' % curdir, 'rb') as image: entry['jpegPhoto'] = image.read() conn.add(entry) result = conn.search(dname, 0) entry.delete() conn.close() self.assertIn("jpegPhoto", result[0].keys()) self.assertEqual(result[0]['jpegphoto'][0], entry['jpegphoto'][0])
def test_add_and_delete(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" try: conn.add(entry) except bonsai.errors.AlreadyExists: conn.delete(entry.dn) conn.add(entry) except: self.fail("Unexcepected error.") res = conn.search() self.assertIn(entry, res) entry.delete() res = conn.search() self.assertNotIn(entry, res)
def test_add_and_delete(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" try: conn.add(entry) except bonsai.errors.AlreadyExists: conn.delete(entry.dn) conn.add(entry) except: self.fail("Unexcepected error.") res = conn.search() self.assertIn(entry, res) entry.delete() res = conn.search() self.assertNotIn(entry, res)
def test_add_and_delete(gclient, basedn): """ Test adding and deleting an 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" try: conn.add(entry) except bonsai.errors.AlreadyExists: conn.delete(entry.dn) conn.add(entry) except: pytest.fail("Unexpected error.") res = conn.search() assert entry in res entry.delete() res = conn.search() assert entry not in res
def test_sync_operations(client, basedn): """ Test LDAPEntry's add, modify and delete synchronous operations. """ entry = LDAPEntry("cn=test,%s" % basedn) with pytest.raises(ValueError): entry.modify() with client.connect() as conn: entry["sn"] = "test" with pytest.raises(bonsai.ObjectClassViolation): conn.add(entry) entry["objectclass"] = [ "top", "inetOrgPerson", "person", "organizationalPerson", ] try: conn.add(entry) except bonsai.AlreadyExists: conn.delete(entry.dn) conn.add(entry) except: pytest.fail("Adding LDAPEntry to the server is failed.") entry["sn"] = "Test_modify" try: entry.modify() except: pytest.fail("Modify failed.") obj = conn.search("cn=test,%s" % basedn, 0)[0] assert entry["sn"] == obj["sn"] try: entry.delete() except: pytest.fail("Delete failed.") with pytest.raises(bonsai.errors.ClosedConnection): entry.modify()
def test_add_and_delete(self): """ Test addding and deleting 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" try: yield conn.add(entry) except bonsai.errors.AlreadyExists: yield conn.delete(entry.dn) yield conn.add(entry) except: self.fail("Unexpected error.") res = yield conn.search() self.assertIn(entry, res) yield entry.delete() res = yield conn.search() self.assertNotIn(entry, res)
def test_add_and_delete(self): """ Test addding and deleting 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" try: yield conn.add(entry) except bonsai.errors.AlreadyExists: yield conn.delete(entry.dn) yield conn.add(entry) except: self.fail("Unexpected error.") res = yield conn.search() assert entry in res yield entry.delete() res = yield conn.search() assert entry not in res