s4-ldap: test the rDN size limit
authorAndrew Tridgell <tridge@samba.org>
Thu, 15 Oct 2009 04:54:40 +0000 (15:54 +1100)
committerAndrew Tridgell <tridge@samba.org>
Thu, 15 Oct 2009 04:54:40 +0000 (15:54 +1100)
source4/lib/ldb/tests/python/ldap.py

index 49aea28f5dd5d90e508533a6411926f30d90343f..3011b7ed285cc5726d8163c5ac51ec3f6256a787 100755 (executable)
@@ -484,6 +484,30 @@ class BasicTests(unittest.TestCase):
 
         self.delete_force(self.ldb, "cn=ldaptestgroup,cn=users," + self.base_dn)
 
+    def test_largeRDN(self):
+        """Testing large rDN (limit 64 characters)"""
+        rdn = "CN=a012345678901234567890123456789012345678901234567890123456789012";
+        self.delete_force(self.ldb, "%s,%s" % (rdn, self.base_dn))
+        ldif = """
+dn: %s,%s""" % (rdn,self.base_dn) + """
+objectClass: container
+"""
+        self.ldb.add_ldif(ldif)
+        self.delete_force(self.ldb, "%s,%s" % (rdn, self.base_dn))
+
+        rdn = "CN=a0123456789012345678901234567890123456789012345678901234567890120";
+        self.delete_force(self.ldb, "%s,%s" % (rdn, self.base_dn))
+        try:
+            ldif = """
+dn: %s,%s""" % (rdn,self.base_dn) + """
+objectClass: container
+"""
+            self.ldb.add_ldif(ldif)
+            self.fail()
+        except LdbError, (num, _):
+            self.assertEquals(num, ERR_CONSTRAINT_VIOLATION)
+        self.delete_force(self.ldb, "%s,%s" % (rdn, self.base_dn))
+
     def test_rename(self):
         """Tests the rename operation"""
         print "Tests the rename operations"""
@@ -1848,6 +1872,7 @@ class SchemaTests(unittest.TestCase):
         self.assertFalse("objectClasses" in res[0])
         self.assertFalse("attributeTypes" in res[0])
 
+
     def test_schemaUpdateNow(self):
         """Testing schemaUpdateNow"""
         class_name = "test-class" + time.strftime("%s", time.gmtime())