1
0
mirror of https://github.com/samba-team/samba.git synced 2025-08-03 04:22:09 +03:00

tests: Add test-case for 'group list --verbose'

Check that the number of members reported is correct.
(This change somehow got left off the ca570bd482 commit that was
actually delivered).

Signed-off-by: Tim Beale <timbeale@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
Tim Beale
2018-11-27 11:51:51 +13:00
committed by Andrew Bartlett
parent b0af029504
commit d662c411e1

View File

@ -117,6 +117,47 @@ class GroupCmdTestCase(SambaToolCmdTest):
found = self.assertMatch(out, name,
"group '%s' not found" % name)
def test_list_verbose(self):
(result, out, err) = self.runsubcmd("group", "list", "--verbose",
"-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 --verbose")
# use the output to build a dictionary, where key=group-name,
# value=num-members
output_memberships = {}
# split the output by line, skipping the first 2 header lines
group_lines = out.split('\n')[2:-1]
for line in group_lines:
# split line by column whitespace (but keep the group name together
# if it contains spaces)
values = line.split(" ")
name = values[0]
num_members = int(values[-1])
output_memberships[name] = num_members
# build up a similar dict using an LDAP search
search_filter = "(objectClass=group)"
grouplist = self.samdb.search(base=self.samdb.domain_dn(),
scope=ldb.SCOPE_SUBTREE,
expression=search_filter,
attrs=["samaccountname", "member"])
self.assertTrue(len(grouplist) > 0, "no groups found in samdb")
ldap_memberships = {}
for groupobj in grouplist:
name = str(groupobj.get("samaccountname", idx=0))
num_members = len(groupobj.get("member", default=[]))
ldap_memberships[name] = num_members
# check the command output matches LDAP
self.assertTrue(output_memberships == ldap_memberships,
"Command output doesn't match LDAP results.\n" +
"Command='%s'\nLDAP='%s'" %(output_memberships,
ldap_memberships))
def test_listmembers(self):
(result, out, err) = self.runsubcmd("group", "listmembers", "Domain Users",
"-H", "ldap://%s" % os.environ["DC_SERVER"],