]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
dsdb/pytest/ldap: revive commented out test for attr size range
authorDouglas Bagnall <douglas.bagnall@catalyst.net.nz>
Fri, 12 Apr 2019 04:09:55 +0000 (16:09 +1200)
committerAndrew Bartlett <abartlet@samba.org>
Wed, 1 May 2019 05:32:25 +0000 (05:32 +0000)
The test was presumably commented out because we fail it, and
known-failing it would have hidden the attr-too-short tests that it
was bundled with. If we disentangle them we can knwn-fail it, which
serves as a TODO list.

(passes against WIN2012R2).

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
selftest/knownfail.d/ldap [new file with mode: 0644]
source4/dsdb/tests/python/ldap.py

diff --git a/selftest/knownfail.d/ldap b/selftest/knownfail.d/ldap
new file mode 100644 (file)
index 0000000..5bb01bc
--- /dev/null
@@ -0,0 +1,2 @@
+# the attributes too long test returns the wrong error
+^samba4.ldap.python.+test_attribute_ranges_too_long
\ No newline at end of file
index 1d4b19adcbcb190d70c8f13f900b7c6dd751e8ae..52e1795f0bb1bc25a2df43e11aaadf3b8253272a 100755 (executable)
@@ -918,16 +918,6 @@ class BasicTests(samba.tests.TestCase):
             (num, _) = e39.args
             self.assertEquals(num, ERR_INVALID_ATTRIBUTE_SYNTAX)
 
-        # Too long (max. 64)
-#        try:
-#            ldb.add({
-#               "dn": "cn=ldaptestuser,cn=users," + self.base_dn,
-#               "objectClass": "person",
-#               "sn": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" })
-#            self.fail()
-#        except LdbError, (num, _):
-#            self.assertEquals(num, ERR_CONSTRAINT_VIOLATION)
-
         ldb.add({
             "dn": "cn=ldaptestuser,cn=users," + self.base_dn,
             "objectClass": "person"})
@@ -939,19 +929,10 @@ class BasicTests(samba.tests.TestCase):
         try:
             ldb.modify(m)
             self.fail()
-        except LdbError as e40:
-            (num, _) = e40.args
+        except LdbError as e:
+            (num, _) = e.args
             self.assertEquals(num, ERR_INVALID_ATTRIBUTE_SYNTAX)
 
-        # Too long (max. 64)
-#        m = Message()
-#        m.dn = Dn(ldb, "cn=ldaptestuser,cn=users," + self.base_dn)
-#        m["sn"] = MessageElement("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", FLAG_MOD_REPLACE, "sn")
-#        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)
@@ -960,6 +941,36 @@ class BasicTests(samba.tests.TestCase):
 
         delete_force(self.ldb, "cn=ldaptestuser,cn=users," + self.base_dn)
 
+    def test_attribute_ranges_too_long(self):
+        """Test attribute ranges"""
+        # This is knownfail with the wrong error
+        # (INVALID_ATTRIBUTE_SYNTAX vs CONSTRAINT_VIOLATION per Windows)
+
+        # Too long (max. 64)
+        try:
+            ldb.add({
+               "dn": "cn=ldaptestuser,cn=users," + self.base_dn,
+               "objectClass": "person",
+               "sn": "x" * 65 })
+            self.fail()
+        except LdbError as e:
+            (num, _) = e.args
+            self.assertEquals(num, ERR_CONSTRAINT_VIOLATION)
+
+        ldb.add({
+            "dn": "cn=ldaptestuser,cn=users," + self.base_dn,
+            "objectClass": "person"})
+
+        # Too long (max. 64)
+        m = Message()
+        m.dn = Dn(ldb, "cn=ldaptestuser,cn=users," + self.base_dn)
+        m["sn"] = MessageElement("x" * 66, FLAG_MOD_REPLACE, "sn")
+        try:
+            ldb.modify(m)
+            self.fail()
+        except LdbError as e:
+            self.assertEquals(e.args[0], ERR_CONSTRAINT_VIOLATION)
+
     def test_empty_messages(self):
         """Test empty messages"""
         m = Message()