From: aborah-sudo Date: Fri, 8 May 2026 08:27:59 +0000 (+0530) Subject: Tests: Rename user who is member of a group X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=68e0fbe2ea302236c94e513923ff2be48fc12cee;p=thirdparty%2Fshadow.git Tests: Rename user who is member of a group This is the transformation to Python of the test located in `tests/usertools/01/10_usermod_rename_user_in_group.test` which checks that `usermod` can rename user who is member of a group --- diff --git a/tests/system/tests/test_usermod.py b/tests/system/tests/test_usermod.py index 8378ef113..e4f42d2a5 100644 --- a/tests/system/tests/test_usermod.py +++ b/tests/system/tests/test_usermod.py @@ -171,3 +171,38 @@ def test_usermod__set_expire_date_with_empty_date(shadow: Shadow, expiration_dat assert result is not None, "User should be found" assert result.name == "tuser1", "Incorrect username" assert result.expiration_date is None, "Expiration date should be empty" + + +@pytest.mark.topology(KnownTopology.Shadow) +def test_usermod__rename_user_in_group(shadow: Shadow): + """ + :title: Rename user who is member of a group + :setup: + 1. Create group + 2. Create user with additional group membership + 3. Rename user + :steps: + 1. Check passwd entry + 2. Check group entry for user's primary group + 3. Check group entry for secondary group membership + :expectedresults: + 1. Passwd entry for renamed user exists + 2. User's primary group still exists with old name + 3. User is member of group with new name + :customerscenario: False + """ + shadow.groupadd("tgroup") + shadow.useradd("-G tgroup tuser1") + shadow.usermod("-l tuser2 tuser1") + + passwd_entry = shadow.tools.getent.passwd("tuser2") + assert passwd_entry is not None, "User should be found" + assert passwd_entry.name == "tuser2", "Incorrect username" + + group_entry = shadow.tools.getent.group("tuser1") + assert group_entry is not None, "Primary group should still exist" + assert group_entry.name == "tuser1", "Primary group should keep old name" + + tgroup_group = shadow.tools.getent.group("tgroup") + assert tgroup_group is not None, "tgroup group should exist" + assert "tuser2" in tgroup_group.members, "User should be in tgroup group with new name"