PEP8: fix E127: continuation line over-indented for visual indent
[samba.git] / source4 / dsdb / tests / python / ldap.py
index 12e36ba8de367775a18df267dad7808aacf88967..0b7f3b1e393d2c4e5cecdf6ee320f4460f88faf4 100755 (executable)
@@ -627,6 +627,15 @@ class BasicTests(samba.tests.TestCase):
             (num, _) = e27.args
             self.assertEquals(num, ERR_NO_SUCH_ATTRIBUTE)
 
+        #
+        # When searching the unknown attribute should be ignored
+        expr = "(|(cn=ldaptestgroup)(thisdoesnotexist=x))"
+        res = ldb.search(base=self.base_dn,
+                         expression=expr,
+                         scope=SCOPE_SUBTREE)
+        self.assertTrue(len(res) == 1,
+                        "Search including unknown attribute failed")
+
         delete_force(self.ldb, "cn=ldaptestgroup,cn=users," + self.base_dn)
 
         # attributes not in objectclasses and mandatory attributes missing test
@@ -894,7 +903,7 @@ class BasicTests(samba.tests.TestCase):
         # Too short (min. 1)
         try:
             ldb.add({
-               "dn": "cn=ldaptestuser,cn=users," + self.base_dn,
+                "dn": "cn=ldaptestuser,cn=users," + self.base_dn,
                "objectClass": "person",
                "sn": "" })
             self.fail()
@@ -913,7 +922,7 @@ class BasicTests(samba.tests.TestCase):
 #            self.assertEquals(num, ERR_CONSTRAINT_VIOLATION)
 
         ldb.add({
-           "dn": "cn=ldaptestuser,cn=users," + self.base_dn,
+            "dn": "cn=ldaptestuser,cn=users," + self.base_dn,
            "objectClass": "person" })
 
         # Too short (min. 1)
@@ -1129,7 +1138,7 @@ class BasicTests(samba.tests.TestCase):
         m = Message()
         m.dn = Dn(ldb, "cn=ldaptestgroup,cn=users," + self.base_dn)
         m["dn"] = MessageElement(
-          "cn=ldaptestgroup,cn=users," + self.base_dn, FLAG_MOD_REPLACE,
+            "cn=ldaptestgroup,cn=users," + self.base_dn, FLAG_MOD_REPLACE,
           "dn")
         try:
             ldb.modify(m)
@@ -1141,7 +1150,7 @@ class BasicTests(samba.tests.TestCase):
         m = Message()
         m.dn = Dn(ldb, "cn=ldaptestgroup,cn=users," + self.base_dn)
         m["distinguishedName"] = MessageElement(
-          "cn=ldaptestuser,cn=users," + self.base_dn, FLAG_MOD_ADD,
+            "cn=ldaptestuser,cn=users," + self.base_dn, FLAG_MOD_ADD,
           "distinguishedName")
 
         try:
@@ -1154,7 +1163,7 @@ class BasicTests(samba.tests.TestCase):
         m = Message()
         m.dn = Dn(ldb, "cn=ldaptestgroup,cn=users," + self.base_dn)
         m["distinguishedName"] = MessageElement(
-          "cn=ldaptestuser,cn=users," + self.base_dn, FLAG_MOD_REPLACE,
+            "cn=ldaptestuser,cn=users," + self.base_dn, FLAG_MOD_REPLACE,
           "distinguishedName")
 
         try:
@@ -1167,7 +1176,7 @@ class BasicTests(samba.tests.TestCase):
         m = Message()
         m.dn = Dn(ldb, "cn=ldaptestgroup,cn=users," + self.base_dn)
         m["distinguishedName"] = MessageElement(
-          "cn=ldaptestuser,cn=users," + self.base_dn, FLAG_MOD_DELETE,
+            "cn=ldaptestuser,cn=users," + self.base_dn, FLAG_MOD_DELETE,
           "distinguishedName")
 
         try:
@@ -1889,7 +1898,7 @@ delete: description
         # Make sure that the "member" attribute for "ldaptestuser" has been
         # removed
         res = ldb.search("cn=ldaptestgroup,cn=users," + self.base_dn,
-                          scope=SCOPE_BASE, attrs=["member"])
+                         scope=SCOPE_BASE, attrs=["member"])
         self.assertTrue(len(res) == 1)
         self.assertFalse("member" in res[0])
 
@@ -1965,7 +1974,7 @@ delete: description
                      "objectClass": "computer",
                      "cn": "ldaptestcomputer3",
                      "sAMAccountType": str(ATYPE_NORMAL_ACCOUNT)
-                })
+                     })
             self.fail()
         except LdbError as e95:
             (num, _) = e95.args
@@ -2105,17 +2114,17 @@ servicePrincipalName: host/ldaptest2computer29
         res = ldb.search(self.base_dn, expression="(cn=ldaptest2computer))", scope=SCOPE_SUBTREE, attrs=["servicePrincipalName;range=11-40"])
         self.assertEquals(len(res), 1, "Could not find (cn=ldaptest2computer)")
         self.assertEquals(len(res[0]["servicePrincipalName;range=11-*"]), 19)
-            # self.assertEquals((res[0]["servicePrincipalName;range=11-*"][18]), pos_11)
+        # self.assertEquals((res[0]["servicePrincipalName;range=11-*"][18]), pos_11)
 
         res = ldb.search(self.base_dn, expression="(cn=ldaptest2computer))", scope=SCOPE_SUBTREE, attrs=["servicePrincipalName;range=11-15"])
         self.assertEquals(len(res), 1, "Could not find (cn=ldaptest2computer)")
         self.assertEquals(len(res[0]["servicePrincipalName;range=11-15"]), 5)
-            # self.assertEquals(res[0]["servicePrincipalName;range=11-15"][4], pos_11)
+        # self.assertEquals(res[0]["servicePrincipalName;range=11-15"][4], pos_11)
 
         res = ldb.search(self.base_dn, expression="(cn=ldaptest2computer))", scope=SCOPE_SUBTREE, attrs=["servicePrincipalName"])
         self.assertEquals(len(res), 1, "Could not find (cn=ldaptest2computer)")
         self.assertEquals(len(res[0]["servicePrincipalName"]), 30)
-            # self.assertEquals(res[0]["servicePrincipalName"][18], pos_11)
+        # self.assertEquals(res[0]["servicePrincipalName"][18], pos_11)
 
         delete_force(self.ldb, "cn=ldaptestuser2,cn=users," + self.base_dn)
         ldb.add({
@@ -2225,7 +2234,7 @@ servicePrincipalName: host/ldaptest2computer29
         self.assertEquals(str(res[0]["cn"]), "ldaptestUSER3")
         self.assertEquals(str(res[0]["name"]), "ldaptestUSER3")
 
-         #"Testing ldb.search for (&(&(cn=ldaptestuser3)(userAccountControl=*))(objectClass=user))"
+        #"Testing ldb.search for (&(&(cn=ldaptestuser3)(userAccountControl=*))(objectClass=user))"
         res = ldb.search(expression="(&(&(cn=ldaptestuser3)(userAccountControl=*))(objectClass=user))")
         self.assertEquals(len(res), 1, "(&(&(cn=ldaptestuser3)(userAccountControl=*))(objectClass=user))")
 
@@ -2233,7 +2242,7 @@ servicePrincipalName: host/ldaptest2computer29
         self.assertEquals(str(res[0]["cn"]), "ldaptestUSER3")
         self.assertEquals(str(res[0]["name"]), "ldaptestUSER3")
 
-         #"Testing ldb.search for (&(&(cn=ldaptestuser3)(userAccountControl=546))(objectClass=user))"
+        #"Testing ldb.search for (&(&(cn=ldaptestuser3)(userAccountControl=546))(objectClass=user))"
         res = ldb.search(expression="(&(&(cn=ldaptestuser3)(userAccountControl=546))(objectClass=user))")
         self.assertEquals(len(res), 1, "(&(&(cn=ldaptestuser3)(userAccountControl=546))(objectClass=user))")
 
@@ -2241,7 +2250,7 @@ servicePrincipalName: host/ldaptest2computer29
         self.assertEquals(str(res[0]["cn"]), "ldaptestUSER3")
         self.assertEquals(str(res[0]["name"]), "ldaptestUSER3")
 
-         #"Testing ldb.search for (&(&(cn=ldaptestuser3)(userAccountControl=547))(objectClass=user))"
+        #"Testing ldb.search for (&(&(cn=ldaptestuser3)(userAccountControl=547))(objectClass=user))"
         res = ldb.search(expression="(&(&(cn=ldaptestuser3)(userAccountControl=547))(objectClass=user))")
         self.assertEquals(len(res), 0, "(&(&(cn=ldaptestuser3)(userAccountControl=547))(objectClass=user))")
 
@@ -2259,8 +2268,8 @@ servicePrincipalName: host/ldaptest2computer29
         # ensure we cannot add it again
         try:
             ldb.add({"dn": "cn=ldaptestuser3,cn=userS," + self.base_dn,
-                      "objectClass": "user",
-                      "cn": "LDAPtestUSER3"})
+                     "objectClass": "user",
+                     "cn": "LDAPtestUSER3"})
             self.fail()
         except LdbError as e98:
             (num, _) = e98.args
@@ -2280,8 +2289,8 @@ servicePrincipalName: host/ldaptest2computer29
 
         # ensure can now use that name
         ldb.add({"dn": "cn=ldaptestuser3,cn=users," + self.base_dn,
-                      "objectClass": "user",
-                      "cn": "LDAPtestUSER3"})
+                 "objectClass": "user",
+                 "cn": "LDAPtestUSER3"})
 
         # ensure we now cannot rename
         try:
@@ -2853,7 +2862,7 @@ nTSecurityDescriptor: """ + sddl)
             sddl = "O:DUG:DUD:PAI(A;;RPWP;;;AU)S:PAI"
             desc = security.descriptor.from_sddl(sddl, self.domain_sid)
             desc_binary = ndr_pack(desc)
-            desc_base64 = base64.b64encode(desc_binary)
+            desc_base64 = base64.b64encode(desc_binary).decode('utf8')
             self.ldb.add_ldif("""
 dn: """ + user_dn + """
 objectclass: user
@@ -2877,7 +2886,7 @@ nTSecurityDescriptor:: """ + desc_base64)
         try:
             sddl = "O:DUG:DUD:AI(A;;RPWP;;;AU)S:PAI"
             desc = security.descriptor.from_sddl(sddl, security.dom_sid('S-1-5-21'))
-            desc_base64 = base64.b64encode( ndr_pack(desc) )
+            desc_base64 = base64.b64encode( ndr_pack(desc) ).decode('utf8')
             self.ldb.add_ldif("""
 dn: """ + user_dn + """
 objectclass: user
@@ -3008,7 +3017,7 @@ sAMAccountName: """ + user_name)
             desc_sddl = desc.as_sddl(self.domain_sid)
             sddl = desc_sddl[:desc_sddl.find("(")] + "(A;;RPWP;;;AU)" + desc_sddl[desc_sddl.find("("):]
             desc = security.descriptor.from_sddl(sddl, self.domain_sid)
-            desc_base64 = base64.b64encode(ndr_pack(desc))
+            desc_base64 = base64.b64encode(ndr_pack(desc)).decode('utf8')
             mod = """
 dn: """ + user_dn + """
 changetype: modify
@@ -3036,7 +3045,7 @@ sAMAccountName: """ + user_name)
             # Modify descriptor
             sddl = "O:DUG:DUD:PAI(A;;RPWP;;;AU)S:PAI"
             desc = security.descriptor.from_sddl(sddl, self.domain_sid)
-            desc_base64 = base64.b64encode(ndr_pack(desc))
+            desc_base64 = base64.b64encode(ndr_pack(desc)).decode('utf8')
             mod = """
 dn: """ + user_dn + """
 changetype: modify