コード例 #1
0
 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.")
コード例 #2
0
 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.")
コード例 #3
0
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]
コード例 #4
0
ファイル: test_ldapentry.py プロジェクト: Noirello/bonsai
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]
コード例 #5
0
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]
コード例 #6
0
ファイル: test_ldapentry.py プロジェクト: Noirello/bonsai
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]
コード例 #7
0
 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])
コード例 #8
0
 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])
コード例 #9
0
 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()
コード例 #10
0
 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])
コード例 #11
0
 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()
コード例 #12
0
 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])
コード例 #13
0
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]
コード例 #14
0
ファイル: test_ldapentry.py プロジェクト: Noirello/bonsai
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]
コード例 #15
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])
コード例 #16
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])
コード例 #17
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)
コード例 #18
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)
コード例 #19
0
ファイル: test_gevent.py プロジェクト: Noirello/bonsai
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
コード例 #20
0
ファイル: test_gevent.py プロジェクト: tck42/bonsai
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
コード例 #21
0
ファイル: test_ldapentry.py プロジェクト: Noirello/bonsai
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()
コード例 #22
0
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()
コード例 #23
0
 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)
コード例 #24
0
ファイル: test_tornado.py プロジェクト: tck42/bonsai
 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