diff options
author | Jule Anger <ja@sernet.de> | 2020-08-06 15:41:11 +0200 |
---|---|---|
committer | Douglas Bagnall <dbagnall@samba.org> | 2020-10-01 01:18:40 +0000 |
commit | ac283a96e774b67cf6da05e8bcc9247444be851b (patch) | |
tree | fce95ade8d4e8c4538e5cfc8b5578a8e1840130c /python | |
parent | 3ff79e81fb83cf466063ed3e8ac986a58430dafe (diff) | |
download | samba-ac283a96e774b67cf6da05e8bcc9247444be851b.tar.gz |
samba-tool tests: add test-cases for 'group rename'
Tests the following options:
--samaccountname
--force-new-cn
--reset-cn
--mail-address
Signed-off-by: Jule Anger <ja@sernet.de>
Reviewed-by: Björn Baumbach <bb@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Diffstat (limited to 'python')
-rw-r--r-- | python/samba/tests/samba_tool/group.py | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/python/samba/tests/samba_tool/group.py b/python/samba/tests/samba_tool/group.py index 47fd14b2d33..f6a6dd81393 100644 --- a/python/samba/tests/samba_tool/group.py +++ b/python/samba/tests/samba_tool/group.py @@ -304,6 +304,81 @@ class GroupCmdTestCase(SambaToolCmdTest): self.assertEqual(err, "", "Shouldn't be any error messages") self.assertIn("dn: CN=Domain Users,CN=Users,DC=addom,DC=samba,DC=example,DC=com", out) + def test_rename_samaccountname(self): + """rename the samaccountname of all groups""" + for group in self.groups: + new_name = "new_samaccountname_of_" + group["name"] + + # change samaccountname + (result, out, err) = self.runsubcmd("group", "rename", group["name"], + "--samaccountname=" + new_name) + self.assertCmdSuccess(result, out, err) + self.assertEqual(err, "", "Shouldn't be any error messages") + self.assertIn('successfully', out) + + found = self._find_group(new_name) + self.assertEqual("%s" % found.get("description"), group["description"]) + if not "cn" in group or str(group["cn"]) == str(group["name"]): + self.assertEqual("%s" % found.get("cn"), new_name) + else: + self.assertEqual("%s" % found.get("cn"), group["cn"]) + + # trying to remove the samaccountname throws an error + (result, out, err) = self.runsubcmd("group", "rename", new_name, + "--samaccountname=") + self.assertCmdFail(result) + self.assertIn('Failed to rename group', err) + self.assertIn('delete protected attribute', err) + + # reset changes + (result, out, err) = self.runsubcmd("group", "rename", new_name, + "--samaccountname=" + group["name"]) + self.assertCmdSuccess(result, out, err) + if "cn" in group: + (result, out, err) = self.runsubcmd("group", "rename", group["name"], + "--force-new-cn=%s" % group["cn"]) + self.assertCmdSuccess(result, out, err) + + def test_rename_cn_mail(self): + """change and remove the cn and mail attributes of all groups""" + for group in self.groups: + new_mail = "new mail of " + group["name"] + new_cn = "new cn of " + group["name"] + + # change attributes + (result, out, err) = self.runsubcmd("group", "rename", group["name"], + "--mail-address=" + new_mail, + "--force-new-cn=" + new_cn) + self.assertCmdSuccess(result, out, err) + self.assertEqual(err, "", "Shouldn't be any error messages") + self.assertIn('successfully', out) + + found = self._find_group(group["name"]) + self.assertEqual("%s" % found.get("mail"), new_mail) + self.assertEqual("%s" % found.get("cn"), new_cn) + + # remove mail + (result, out, err) = self.runsubcmd("group", "rename", group["name"], + "--mail-address=") + self.assertCmdSuccess(result, out, err) + self.assertEqual(err, "", "Shouldn't be any error messages") + self.assertIn('successfully', out) + + found = self._find_group(group["name"]) + self.assertEqual(found.get("mail"), None) + + # trying to remove cn (throws an error) + (result, out, err) = self.runsubcmd("group", "rename", group["name"], + "--force-new-cn=") + self.assertCmdFail(result) + self.assertIn("Failed to rename group", err) + self.assertIn("delete protected attribute", err) + + # reset CN (mail is already empty) + (result, out, err) = self.runsubcmd("group", "rename", group["name"], + "--reset-cn") + self.assertCmdSuccess(result, out, err) + def _randomGroup(self, base={}): """create a group with random attribute values, you can specify base attributes""" |