samba-tool tests: add test-case for 'user list --base-dn'
authorJule Anger <ja@sernet.de>
Wed, 28 Aug 2019 09:06:13 +0000 (11:06 +0200)
committerStefan Metzmacher <metze@samba.org>
Tue, 21 Jan 2020 14:38:45 +0000 (14:38 +0000)
Check if the user list --base-dn / -b command uses a specific base dn.

Signed-off-by: Jule Anger <ja@sernet.de>
Reviewed-by: Björn Baumbach <bb@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
python/samba/tests/samba_tool/user.py

index 69876450cd15dd9862021f91f602f634aed931d7..65930ed89de05c73bd2ea8a76642d45cd6958b70 100644 (file)
@@ -380,6 +380,30 @@ class UserCmdTestCase(SambaToolCmdTest):
             found = self.assertMatch(out, name,
                                      "user '%s' not found" % name)
 
+
+    def test_list_base_dn(self):
+        base_dn = "CN=Users"
+        (result, out, err) = self.runsubcmd("user", "list", "-b", base_dn,
+                                            "-H", "ldap://%s" % os.environ["DC_SERVER"],
+                                            "-U%s%%%s" % (os.environ["DC_USERNAME"],
+                                                          os.environ["DC_PASSWORD"]))
+        self.assertCmdSuccess(result, out, err, "Error running list")
+
+        search_filter = ("(&(objectClass=user)(userAccountControl:%s:=%u))" %
+                         (ldb.OID_COMPARATOR_AND, dsdb.UF_NORMAL_ACCOUNT))
+
+        userlist = self.samdb.search(base=self.samdb.normalize_dn_in_domain(base_dn),
+                                     scope=ldb.SCOPE_SUBTREE,
+                                     expression=search_filter,
+                                     attrs=["samaccountname"])
+
+        self.assertTrue(len(userlist) > 0, "no users found in samdb")
+
+        for userobj in userlist:
+            name = str(userobj.get("samaccountname", idx=0))
+            found = self.assertMatch(out, name,
+                                     "user '%s' not found" % name)
+
     def test_list_full_dn(self):
         (result, out, err) = self.runsubcmd("user", "list", "--full-dn",
                                             "-H", "ldap://%s" % os.environ["DC_SERVER"],