SQUASH NOT FIX s4:dsdb/test/ldap: add more test_attribute_ranges() combinations
authorStefan Metzmacher <metze@samba.org>
Wed, 25 Sep 2013 07:15:01 +0000 (09:15 +0200)
committerStefan Metzmacher <metze@samba.org>
Wed, 25 Sep 2013 07:36:18 +0000 (09:36 +0200)
source4/dsdb/tests/python/ldap.py

index fe17a0a8d1303644914b7f152a728dd6b0b95660..5ed3981993eb955b4169e5305035265ab66b05e9 100755 (executable)
@@ -910,6 +910,68 @@ class BasicTests(samba.tests.TestCase):
         m["sn"] = MessageElement("x", FLAG_MOD_REPLACE, "sn")
         ldb.modify(m)
 
+        # "codePage" uses rangeLower: 0 rangeUpper: 65535
+        # and it's not allowed on objectClass: person
+        m = Message()
+        m.dn = Dn(ldb, "cn=ldaptestuser,cn=users," + self.base_dn)
+        m["codePage"] = MessageElement("0123456789012345678901234567890134567",
+                                        FLAG_MOD_ADD, "codePage")
+        try:
+            ldb.modify(m)
+            self.fail()
+        except LdbError, (num, _):
+            self.assertEquals(num, ERR_INVALID_ATTRIBUTE_SYNTAX)
+
+        m = Message()
+        m.dn = Dn(ldb, "cn=ldaptestuser,cn=users," + self.base_dn)
+        m["codePage"] = MessageElement("SomeRandomText",
+                                        FLAG_MOD_ADD, "codePage")
+        try:
+            ldb.modify(m)
+            self.fail()
+        except LdbError, (num, _):
+            self.assertEquals(num, ERR_INVALID_ATTRIBUTE_SYNTAX)
+
+        m = Message()
+        m.dn = Dn(ldb, "cn=ldaptestuser,cn=users," + self.base_dn)
+        m["codePage"] = MessageElement("-1",
+                                        FLAG_MOD_ADD, "codePage")
+        try:
+            ldb.modify(m)
+            self.fail()
+        except LdbError, (num, _):
+            self.assertEquals(num, ERR_CONSTRAINT_VIOLATION)
+
+        m = Message()
+        m.dn = Dn(ldb, "cn=ldaptestuser,cn=users," + self.base_dn)
+        m["codePage"] = MessageElement("65536",
+                                        FLAG_MOD_REPLACE, "codePage")
+        try:
+            ldb.modify(m)
+            self.fail()
+        except LdbError, (num, _):
+            self.assertEquals(num, ERR_CONSTRAINT_VIOLATION)
+
+        m = Message()
+        m.dn = Dn(ldb, "cn=ldaptestuser,cn=users," + self.base_dn)
+        m["codePage"] = MessageElement("0",
+                                        FLAG_MOD_REPLACE, "codePage")
+        try:
+            ldb.modify(m)
+            self.fail()
+        except LdbError, (num, _):
+            self.assertEquals(num, ERR_OBJECT_CLASS_VIOLATION)
+
+        m = Message()
+        m.dn = Dn(ldb, "cn=ldaptestuser,cn=users," + self.base_dn)
+        m["codePage"] = MessageElement("65535",
+                                        FLAG_MOD_REPLACE, "codePage")
+        try:
+            ldb.modify(m)
+            self.fail()
+        except LdbError, (num, _):
+            self.assertEquals(num, ERR_OBJECT_CLASS_VIOLATION)
+
         delete_force(self.ldb, "cn=ldaptestuser,cn=users," + self.base_dn)
 
     def test_empty_messages(self):